Conectar-se
Quem está conectado
26 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 25 Visitantes

gart30

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 13/05/2010
Número de Mensagens : 298
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.totalmakers.forumais.com

Problemas na Colisão

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
avatar
Ranking : Nota B
Notas recebidas : B+A
Data de inscrição : 26/11/2010
Número de Mensagens : 474
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 1
   : 1
Ver perfil do usuáriohttp://www.google.com.br

Re: Problemas na Colisão

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
avatar
Data de inscrição : 13/05/2010
Número de Mensagens : 298
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.totalmakers.forumais.com

Re: Problemas na Colisão

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.
avatar
Ranking : Nota B
Notas recebidas : A - B
Data de inscrição : 04/02/2009
Número de Mensagens : 1243
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 1

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuário

Re: Problemas na Colisão

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
avatar
Data de inscrição : 13/05/2010
Número de Mensagens : 298
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.totalmakers.forumais.com

Re: Problemas na Colisão

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?
avatar
Ranking : Nota B
Notas recebidas : A - B
Data de inscrição : 04/02/2009
Número de Mensagens : 1243
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 1

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuário

Re: Problemas na Colisão

em Sex 10 Dez 2010, 23:40
vc tentou o código que coloquei e deletar o evento colisão?
avatar
Data de inscrição : 13/05/2010
Número de Mensagens : 298
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.totalmakers.forumais.com

Re: Problemas na Colisão

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.
avatar
Ranking : Nota B
Notas recebidas : A - B
Data de inscrição : 04/02/2009
Número de Mensagens : 1243
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 1

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuário

Re: Problemas na Colisão

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
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum