Sprite preso

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Sprite preso

Mensagem por rafarubim em Qui 03 Fev 2011, 22:29

Bom, uso o gm8 pro, e tenho uma dúvida, em um jogo que estava fazendo, o player possui um sprite para baixo, esquerda, direita e em movimento para tais lados, tudo funciona direitinho, mas ao fazer que ao colidir com um objeto solido ele não se mova, dá um bug em que ele não se move. Isso aconteceu porque o sprite se movia, e fez ele ficar preso dentro do outro objeto, tentei usar a função bounce mas também não deu certo. Acontece que esse problema já resolvi, porque usei a função jump to position para que quando o player colidir com algum objeto pulasse para fora, como se estivesse usando a função bounce. Até aí tudo bem, mas como o sprite muda de lado, ao virar, digamos que a "cauda" do player fica presa na parede (não é uma cauda, mas usei essa "expressão"), e não tem como sair. já tentei usar a função check empety, check colisionmas não consigo deter esse bug, inclusive em outro jogo que fiz (aquele tipo de jogo em que aquele bastãozinho fica embaixo rebatendo a bola para quebrar vários blocos lá emcima) há um bug em que, quando você pega um bonus para aumentar o bastão ao lado da parede, ele fica preso dentro da parede. Alguem me ajuda???

rafarubim

Número de Mensagens : 65
Data de inscrição : 20/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Sprite preso

Mensagem por Kiko em Qui 03 Fev 2011, 22:38

cara é só arrumar as sprites para tamanhos iguais.

Kiko

Número de Mensagens : 188
Idade : 18
Data de inscrição : 16/01/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprite preso

Mensagem por rafarubim em Qui 03 Fev 2011, 22:48

O jogo é um jogo de pokémon, e o sprite é de um gastly. Ao se virar, Sua "fumaçinha" se vira para o outro lado e se prende na parede. Os sprites já são do mesmo tamanho.

rafarubim

Número de Mensagens : 65
Data de inscrição : 20/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Sprite preso

Mensagem por Shadow10 em Qui 03 Fev 2011, 23:29

No player desmarca o opção de solid.
Cria um sprite que servirá de mascara pro player, faça em formato quadrado nele marque a opção solid.

Na colisão entre os dois digita esse código:
Código:
motion_set(360,0)

Pronto, resolvido!

*************Editado**********

Fiz uma engine pra encinar como funciona.
Link: Colisão by Shadow10


Última edição por Shadow10 em Qui 03 Fev 2011, 23:56, editado 1 vez(es)

Shadow10

Ranking : Nota C
Número de Mensagens : 429
Data de inscrição : 07/11/2010
Notas recebidas : C
Reputação : 19
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprite preso

Mensagem por rafarubim em Qui 03 Fev 2011, 23:33

O player não é solid, e já que é um jogo de pokemon, terei que fazer uma "máscara" para todos eles? Ainda não entendi também como funciona essa máscara. Pode explicar?

rafarubim

Número de Mensagens : 65
Data de inscrição : 20/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Sprite preso

Mensagem por Shadow10 em Qui 03 Fev 2011, 23:58

Você não precisa fazer 1 mascara pra todos eles.
Pode usar 1 só em todos eles, não tem erro.

Shadow10

Ranking : Nota C
Número de Mensagens : 429
Data de inscrição : 07/11/2010
Notas recebidas : C
Reputação : 19
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprite preso

Mensagem por rafarubim em Sex 04 Fev 2011, 11:10

Mas como faço essa máscara???

rafarubim

Número de Mensagens : 65
Data de inscrição : 20/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Sprite preso

Mensagem por Markituh em Sex 04 Fev 2011, 11:20

Você cria uma sprite, e nessa sprite preencha de cor preta a parte em que você quer que a mask ocorra. Por exemplo, se o pokemon tiver a resolução de 54x32, vamos criar uma outra sprite com a mesma resolução para fazer a mask. E então pintamos um retângulo nessa sprite para ali ser a área de colisão, uma pequena ilustração:

A área do retângulo preta seria a área em que ocorreria a colisão, é claro que você tem que colocar na localização do bichano. Smile Para aplicar a máscara, só é ir no objeto e colocar a sprite da máscara no campo "Mask", lá em baixo, lado esquerdo, abaixo de Parent. Compreendeu colega?

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprite preso

Mensagem por Shadow10 em Sex 04 Fev 2011, 20:46

É, o Markituh disse tudo.
Mas se ainda não compreendeu é só informar que eu especifico pra você.

Shadow10

Ranking : Nota C
Número de Mensagens : 429
Data de inscrição : 07/11/2010
Notas recebidas : C
Reputação : 19
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprite preso

Mensagem por Conteúdo patrocinado Hoje à(s) 22:24


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum