Dúvida na colisão?!

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

Dúvida na colisão?!

Mensagem por Adriel em Sab 17 Abr 2010, 21:15

Como fazer para que, quando ele colida com uma plataforma no ar, se ele bater na lateral, ele não grude, ele desça????

Adriel

Número de Mensagens : 922
Idade : 18
Data de inscrição : 18/07/2009
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Dúvida na colisão?!

Mensagem por fonetico em Sab 17 Abr 2010, 21:20

Vamos tentar um esquema de códigos que dependendo do jogo, ajusta essa "grudada".
Pois bem, primeiro vá no evento step do seu personagem e coloque o código:
Código:
if place_free(x,y+1) //se tiver espaço a 1 pixel abaixo
{
    gravity_direction = 270 //direção da gravidade para baixo
    gravity = 0.5 //pressão da gravidade
}
else //senao
{
      gravity_direction = 270 //direção da gravidade para baixo
      gravity = 0 //não haverá gravidade
}

Agora, na colisão do personagem com a plataforma coloque:
Código:
move_contact_solid(direction,12) //contato oposto à plataforma
vspeed = 0 //velocidade vertical igual a 0

Espero que esse código resolva seu problema, ele é um dos mais utilizados para resolver isso.

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Dúvida na colisão?!

Mensagem por Adriel em Sab 17 Abr 2010, 21:22

Eu uso estes dois códigos e dá errado, ele gruda... e depois dizem que o GM não tem bugs!

Adriel

Número de Mensagens : 922
Idade : 18
Data de inscrição : 18/07/2009
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Dúvida na colisão?!

Mensagem por fonetico em Sab 17 Abr 2010, 21:26

Já tentou colocar só a plataforma sólida mas o player não?

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Dúvida na colisão?!

Mensagem por Adriel em Sab 17 Abr 2010, 21:27

Já está assim!

Adriel

Número de Mensagens : 922
Idade : 18
Data de inscrição : 18/07/2009
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Dúvida na colisão?!

Mensagem por André Gustavo em Dom 18 Abr 2010, 10:06

qual é o codigo de colisao com a plataforma,pode ser nesse evento que esta errado.

André Gustavo

Número de Mensagens : 278
Data de inscrição : 16/06/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Dúvida na colisão?!

Mensagem por fonetico em Dom 18 Abr 2010, 10:22

Tente colocar a máscara do player em forma de quadrado, isso evita que ele grude. Por padrão, ao adicionar um sprite, a máscara fica da mesma forma que o personagem, o que pode estar causando esse erro. O certo seria colocar a máscara em forma de quadrado porque dessa forma, ela "desliza".

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Dúvida na colisão?!

Mensagem por KinKing em Dom 18 Abr 2010, 14:06

Você usa a função place_free() no código de movimentação? Geralmente ele é usado em jogos de plataformas para impedir que o personagem entre nas paredes.

Assim, o objeto andaria só se tiver espaço para andar. Nada que você crie tem inteligência própria (a não ser que você a programe =P).

O que acontece na tela é por causa dos seus códigos, certos ou errados. Não é bug do Game Maker.

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Re: Dúvida na colisão?!

Mensagem por PedroX em Dom 18 Abr 2010, 14:33

o Game Maker nao tem bugs de colisao...

vou te explicar um jeito:

-Crie um objeto p/ ser a parede e coloque hspeed=0 na colisao
-Crie um objeto p/ ser o chao e coloque vspeed=0 na colisao...

Agora coloque a parede assim:

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Dúvida na colisão?!

Mensagem por Janx em Dom 18 Abr 2010, 18:22

Pedro Henrique escreveu:o Game Maker nao tem bugs de colisao...

vou te explicar um jeito:

-Crie um objeto p/ ser a parede e coloque hspeed=0 na colisao
-Crie um objeto p/ ser o chao e coloque vspeed=0 na colisao...

Agora coloque a parede assim:

Essa "solução" é pouco eficiente, o melhor é uma engine que funcione genéricamente.
O problema no caso deve ser a falta de uma mascara de colisão!
Coloque uma mascara e adicione esse código no step:
Código:

while (!place_free(x+1,y))
{x-=1;}
while (!place_free(x-1,y))
{x+=1;}

while (!place_free(x,y+1))
{y-=1;}
while (!place_free(x,y-1))
{x+=1;}
isso vai impedir que ele entre no chao/parede.

Flwss

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Dúvida na colisão?!

Mensagem por Denis Lemos em Dom 18 Abr 2010, 18:45

O modo do janx é bom, mas também tem outro jeito bem simples, coloque no STEP do player:
Código:

if not place_free(x+hspeed,y) { hspeed=0 }

Comigo isso sempre funcionou !

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Dúvida na colisão?!

Mensagem por Conteúdo patrocinado Hoje à(s) 00:09


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