Conectar-se
Quem está conectado
19 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 19 Visitantes

Nenhum

Ver toda a lista


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

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

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

Colisão em topdown

em Ter 25 Dez 2012, 17:46
Não estou conseguindo fazer a colisão do carro no meu jogo de corrida em top down...
alguem pode me ajudar ???
olhem o script que eh executado na colisão:
Código:
//Script que manipula colisão com um objeto sólido

var colDir;

colDir = point_direction(other.x, other.y, x, y);
direction = colDir;
if colDir != 0
speed = speed/direction;

Sera que eh possivel fazer uma colisão precisa, sem ser "speed = 0"
vlw
avatar
Ranking : Nota B
Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Número de Mensagens : 764
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 30

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

Re: Colisão em topdown

em Ter 25 Dez 2012, 17:55
Nao entendo, mas porque nao pode ser speed=0 ?
avatar
Data de inscrição : 31/05/2011
Número de Mensagens : 87
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

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

Re: Colisão em topdown

em Ter 25 Dez 2012, 22:36
pq em uma colisão precisa o carro bate e volta um pouco com a velocidaade reduzida drasticamente... e nao para d vez... e tambem se speed= for igual a 0 ao encostar na parede se ele soh 'ralá' o carro na parede o carro vai 'travar'....
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

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

Re: Colisão em topdown

em Qua 26 Dez 2012, 09:22
@RubensGM escreveu:
Código:
speed = speed/direction;
De cara, achei que essa linha geraria um erro. E se "direction" for "0"? Aí, pensei que você pode ter escrito o código de cabeça e pensado em "colDir" ao invés de "direction". Foi isso, né?
Mesmo assim, fica estranho. Se colDir for 1, a velocidade não muda nada, se for 359 (quase a mesma coisa), cai drasticamente.

Olha, o que eu faço normalmente é assim, eu verifico qual a direção ortogonal que mais se assemelha à da colisão. Então, colDir passa a assumir apenas os valores 0, 90, 180 ou 270.
Aí, eu divido a direção do carro em dois vetores. Aquele que for em direção à colisão é zerado e o restante é multiplicado por um valor fixo, tipo entre 0.75 e 1 (normalmente eu deixo 1, mesmo). Resultado: a direção fica ortogonal e a velocidade resultante depende da direção que ele vinha.

Ah, sim, a image_angle depende da direção, e não o contrário.
Com um pouco mais de trabalho, você pode fazer a image_angle ir girando até o ponto em que não há mais colisão (lembre-se de criar uma mask retangular). Aí, a direction vai depender da image_angle resultante. Com a direction inicial, o truque de dividir a velocidade em vetores ainda funciona, mas a matemática é um pouco mais chata.
avatar
Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 1
Reputação : 80

Prêmios
   : 2
   : 2
   : 1
Ver perfil do usuáriohttp://guitarmester.no.comunidades.net/index.php?pagina=19362978

Re: Colisão em topdown

em Qua 26 Dez 2012, 11:44
pq em uma colisão precisa o carro bate e volta um pouco com a velocidaade reduzida drasticamente...
o Jeito mais Fácil de Fazer isto é colocar na Colisão Isto:
Código:
speed = speed/4
Porém não é o Melhor(mas o Jeito melhor e mais real, ainda não achei).
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