Problemas na Colisão

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

Problemas na Colisão

Mensagem por CLS em Sex 10 Dez 2010, 21:27

Olá,pessoal!Happy
Hoje eu comecei a fazer um jogo e descobri um bug horroroso na colisão do personagem com a parede,ele pára completamente!Vejam a imagem abaixo:



No evento de colisão com o bloco eu cloquei esse código:

Código:
speed = 0

Ele sempre dá certo,mas por que agora não?
Poderiam me ajudar?

Até!Happy

CLS

Número de Mensagens : 298
Idade : 19
Data de inscrição : 13/05/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.totalmakers.forumais.com

Voltar ao Topo Ir em baixo

Re: Problemas na Colisão

Mensagem por Godsil4 em Sex 10 Dez 2010, 22:59

coloca esse codigo no contato com o bloca:

Código:
move_contact_solid(direction,12)
vspeed=0
isso se o player ja tive gravidade

Godsil4

Ranking : Nota B
Número de Mensagens : 474
Data de inscrição : 26/11/2010
Notas recebidas : B+A
Reputação : 23
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 1

http://www.google.com.br

Voltar ao Topo Ir em baixo

Re: Problemas na Colisão

Mensagem por CLS em Sex 10 Dez 2010, 23:02

Godsil4 escreveu:coloca esse codigo no contato com o bloca:

Código:
move_contact_solid(direction,12)
vspeed=0
isso se o player ja tive gravidade

Eu já sabia sobre esse código,mas não vai funcionar porque o meu jogo não é de plataforma.

CLS

Número de Mensagens : 298
Idade : 19
Data de inscrição : 13/05/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.totalmakers.forumais.com

Voltar ao Topo Ir em baixo

Re: Problemas na Colisão

Mensagem por dharrison em Sex 10 Dez 2010, 23:11

usa o place_free (para não chegar a collidir com objetos sólidos) ou place_empty (para todos tipos de objetos, sólidos ou não)

place_free verifica se a posição na direção dada está livre

por exemplo, tente isso (não testei)

Código:
if !place_free(x+2,y) or !place_free(x,y+2) or !place_free(x-2,y) or !place_free(x,y-2)
{
speed=0
}

Nesse caso nem vai precisar de evento Collsion ;)

explicando o código:
usando if !place_free(x,y), traduzindo literalmente você está usando:
"SE local (x,y) NÃO estiver livre".
Se vc não usar o ! (que significa not em GML), não vai dar certo.
Em outras palavras, se as dadas posições ao redor do OBj Player não estiverem livres, ele pára.

Espero não ter complicado demais :S

Abraços
DHarrison

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Problemas na Colisão

Mensagem por CLS em Sex 10 Dez 2010, 23:16

dharrison escreveu:usa o place_free (para não chegar a collidir com objetos sólidos) ou place_empty (para todos tipos de objetos, sólidos ou não)

place_free verifica se a posição na direção dada está livre

por exemplo, tente isso (não testei)

Código:
if !place_free(x+2,y) or !place_free(x,y+2) or !place_free(x-2,y) or !place_free(x,y-2)
{
speed=0
}

Nesse caso nem vai precisar de evento Collsion ;)



explicando o código:
usando if !place_free(x,y), traduzindo literalmente você está usando:
"SE local (x,y) NÃO estiver livre".
Se vc não usar o ! (que significa not em GML), não vai dar certo.
Em outras palavras, se as dadas posições ao redor do OBj Player não estiverem livres, ele pára.

Espero não ter complicado demais :S

Abraços
DHarrison

Muito obrigado por responder,mas esse problema foi resolvido,o que acontece é que quando você colide com o obj_bloco e tenta sair não dá mais.O que faço para arrumar isso?

CLS

Número de Mensagens : 298
Idade : 19
Data de inscrição : 13/05/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.totalmakers.forumais.com

Voltar ao Topo Ir em baixo

Re: Problemas na Colisão

Mensagem por dharrison em Sex 10 Dez 2010, 23:40

vc tentou o código que coloquei e deletar o evento colisão?

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Problemas na Colisão

Mensagem por CLS em Sex 10 Dez 2010, 23:42

dharrison escreveu:vc tentou o código que coloquei e deletar o evento colisão?

Sim,deletei o evento de colisão com o obj_bloco e coloquei o seu código no evento Step.

CLS

Número de Mensagens : 298
Idade : 19
Data de inscrição : 13/05/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.totalmakers.forumais.com

Voltar ao Topo Ir em baixo

Re: Problemas na Colisão

Mensagem por dharrison em Sab 11 Dez 2010, 00:08

estranho, se nao funcionou tente mudar o speed
porque logicamente se ao chegar perto do objecto ele parar, nao vai conseguir sair de la...
tente colocar dentro do ELSE do Keyboard_check

de qlq forma, porque não ve um tuto de maze games ou algo do tipo?
isso que vc ta querendo nao eh dificil, nao deveria estar bugando

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Problemas na Colisão

Mensagem por Conteúdo patrocinado Hoje à(s) 14:16


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