Efeito blayblade ....preciso de ajuda para fazer o impacto
oi
to fazendo um jogo
e preciso simular o seguinte efeito
imaginem um peão girando parado (a)
e o outro vem da sua direita (b)
e se choca com ele
o pião (a) terá q ir pra direita e depois ir perdendo aceleração e ficar parado novamente
quero saber como faço isso
a direção q ele vai ter q andar
tipo o angulo como se agente chutasse uma bola
é meio complicado de explicar espero q tenhaum entendido
desde já obrigado
to fazendo um jogo
e preciso simular o seguinte efeito
imaginem um peão girando parado (a)
e o outro vem da sua direita (b)
e se choca com ele
o pião (a) terá q ir pra direita e depois ir perdendo aceleração e ficar parado novamente
quero saber como faço isso
a direção q ele vai ter q andar
tipo o angulo como se agente chutasse uma bola
é meio complicado de explicar espero q tenhaum entendido
desde já obrigado
Robotizar
Curtidas 0
Respostas
Henry
27/12/2003
Robotizar meu velho que bom que vc ressurgiu, espero que não fique brabo de estar fazendo um pedido em vez de te responder, mas vc tem o delphiX pro Delphi6 ai??
GOSTEI 0
Cebikyn
27/12/2003
DelphiX pra Delphi6 (pro Henry):
http://turbo.gamedev.net/delphix.asp
E a resposta pro Robotizar:
Pra fazer o efeito Beyblade (apenas como achar a direção será explicado, a parte de aceleração é por sua conta):
Observe a figura abaixo:
O pião (a), seguirá sua trajetória em um ângulo theta 1 com a horizontal, então para descobrir qual é este ângulo, basta usar o principio da conservação do movimento linear, ficaria assim:
No eixo X:
m1 * v1i = m1 * v1f * cos(theta1) + m2 * v2f *cos(theta2)
No eixo Y:
0 = - m1 * v1f * sen(theta1) + m2* v2f * sen(theta2)
Como a energia cinética dos piões tb é conservada, pode-se montar a seguinte equação:
½m1 * v1i^2 = ½m1 * v1f^2 + ½m2 * v2f^2
Assim, vc fica com um sistema de 3 equações com 7 variáveis, para resolve-lo, basta substituir 4 destas variáveis por valores conhecidos e vc obterá os valores das outras 3.
Simples, não? Agora resta a pergunta: vc vai se assustar com as equações ou vai implementar tudo no Delphi e gritar Let it riiiiiiiiiiiiip!!!!! ?
Qualquer dúvida sobre as equações ou sobre como faze-las no Delphi, deixe uma msg.
Ahhh, já ia me esquecendo: muito bom o seu portal robotizar.kit.net, o design ta muito bom.
http://turbo.gamedev.net/delphix.asp
E a resposta pro Robotizar:
Pra fazer o efeito Beyblade (apenas como achar a direção será explicado, a parte de aceleração é por sua conta):
Observe a figura abaixo:
O pião (a), seguirá sua trajetória em um ângulo theta 1 com a horizontal, então para descobrir qual é este ângulo, basta usar o principio da conservação do movimento linear, ficaria assim:
No eixo X:
m1 * v1i = m1 * v1f * cos(theta1) + m2 * v2f *cos(theta2)
No eixo Y:
0 = - m1 * v1f * sen(theta1) + m2* v2f * sen(theta2)
Como a energia cinética dos piões tb é conservada, pode-se montar a seguinte equação:
½m1 * v1i^2 = ½m1 * v1f^2 + ½m2 * v2f^2
Assim, vc fica com um sistema de 3 equações com 7 variáveis, para resolve-lo, basta substituir 4 destas variáveis por valores conhecidos e vc obterá os valores das outras 3.
Simples, não? Agora resta a pergunta: vc vai se assustar com as equações ou vai implementar tudo no Delphi e gritar Let it riiiiiiiiiiiiip!!!!! ?
Qualquer dúvida sobre as equações ou sobre como faze-las no Delphi, deixe uma msg.
Ahhh, já ia me esquecendo: muito bom o seu portal robotizar.kit.net, o design ta muito bom.
GOSTEI 0
Robotizar
27/12/2003
nossa!!!!1 cara num testei ainda mais como minha turma diz ....
C CUNHECEEEEEEEEEEE!!!!!!!!
Vlw vou testar aqui qualquqer duvida falo com vc...e vlw pelo elogio ao site
C CUNHECEEEEEEEEEEE!!!!!!!!
Vlw vou testar aqui qualquqer duvida falo com vc...e vlw pelo elogio ao site
GOSTEI 0
Robotizar
27/12/2003
explica como vou usar isso no delphi ai q ficou meio confuso pra mim heheheheheh
tipo o q vai ser cada variavel ai me explica direitinho
desde já agradeço
tipo o q vai ser cada variavel ai me explica direitinho
desde já agradeço
GOSTEI 0
Cebikyn
27/12/2003
[b:256d095823]Variáveis[/b:256d095823] (todas Extended):
m1: Massa do pião que chega pela direita (vc escolhe, se não quiser que a massa tenha influência no resultado, use 1, mas vc deve saber que a massa influencia, tanto que são colocados os anéis de ataque para aumentar o peso.)
m2: Massa do pião “parado” (mesmas observações)
v1i: Velocidade linear inicial do pião que bate (vc q escolhe)
v1f: Velocidade linear final do pião que bate, após a colisão (será calculada)
v2f: Velocidade linear final do pião que estava “parado” (tb será calculada)
theta1 e theta2: ângulos que indicarão a direção (as letras gregas da figura)
Aguarde o código, eu vou ver se acho uma forma mais fácil de resolver o sistema de equações.
m1: Massa do pião que chega pela direita (vc escolhe, se não quiser que a massa tenha influência no resultado, use 1, mas vc deve saber que a massa influencia, tanto que são colocados os anéis de ataque para aumentar o peso.)
m2: Massa do pião “parado” (mesmas observações)
v1i: Velocidade linear inicial do pião que bate (vc q escolhe)
v1f: Velocidade linear final do pião que bate, após a colisão (será calculada)
v2f: Velocidade linear final do pião que estava “parado” (tb será calculada)
theta1 e theta2: ângulos que indicarão a direção (as letras gregas da figura)
Aguarde o código, eu vou ver se acho uma forma mais fácil de resolver o sistema de equações.
GOSTEI 0
Cebikyn
27/12/2003
Pesquisei mais e achei uma forma muito mais fácil de achar a direção (sem todo aquele monte de variável), não é condizente com a realidade, mas fica igual ao desenho:
theta1 = 180 - 2 * arcsen(b / R), em que b é indicado na figura abaixo e R é o raio do pião (preferencialmente os piões devem ter o mesmo raio).
theta2 será (o código comentado resulta em ângulos positivos, o código não comentado resulta nos ângulos negativos correspondentes):
A função arcsen está na unit Math, para usá-la, coloque:
Fazendo do jeito anterior, o seu jogo será mais real, mas é muito difícil resolver equações não lineares no Delphi... :(
theta1 = 180 - 2 * arcsen(b / R), em que b é indicado na figura abaixo e R é o raio do pião (preferencialmente os piões devem ter o mesmo raio).
theta2 será (o código comentado resulta em ângulos positivos, o código não comentado resulta nos ângulos negativos correspondentes):
if (theta1> -90) and (theta1 < 90) then theta2 := -1 * theta1 // ou 360 - theta1 else theta2 := -1 * (180 - theta1); // ou 360 - (180 - theta1)
A função arcsen está na unit Math, para usá-la, coloque:
theta1 = 180 - 2 * RadToDeg(arcsen(b / R));
Fazendo do jeito anterior, o seu jogo será mais real, mas é muito difícil resolver equações não lineares no Delphi... :(
GOSTEI 0
Robotizar
27/12/2003
cara eu sou seu fã!!!!!!!!
me da um altografo???
C cunheceeeeeeeeee!!! hehehhehehehe
vlw mesmo de coração se eu conseguir levar o jogo até o final seu nome vai estar lá pode ter certeza.
me da um altografo???
C cunheceeeeeeeeee!!! hehehhehehehe
vlw mesmo de coração se eu conseguir levar o jogo até o final seu nome vai estar lá pode ter certeza.
GOSTEI 0