Comunidad de diseño web y desarrollo en internet online

calcular angulo de la bala

Citar            
MensajeEscrito el 26 Abr 2008 04:07 pm
hola espero que esten bien tengo un juego que es de plataforma y se ve de costado , con el mouse tienes la mira y cuando disparas la bala sale del arma y atraviesa el punto en donde tienes el mouse y sigue de largo hasta chocar con algo , digamos que con el mouse lo que haces es indicar la linea por la que tiene que pasar el disparo , igual al juego soldat.

Bien pues el problema que tengo es simplemente que no se trigonometria por que en la escuela me la pasaba con las chicas en vez de estudiar, entonces lo resolvi de una menera que ahora me esta dando problemas de presicion. La forma en que lo resolvi fue dividiendo _xmouse / _ymouse y el resultado es los pixeles que tiene que avanzar _x cuando _y avanza 1 (suponiendo que la bala parte de la coordenada 0)

por ejemplo si x = 200 e y = 100 200 / 100 da 2 y 2 son los pixeles que avanza bala._x cuando bala._y avanza 1, de esta manera logro que la bala avanze en linea recta hacia donde ponemos el raton.
El problema es que si disparamos muy en linea recta el resultado de la division da 7 pixeles para _x cuando _y 1 , la bala va en la direccion correcta pero avanza de 7 en 7 y eso me da problemas con el hittest por que hace hittest con 7 pixeles de retrazo.

¿hay otra manera de plantear esto? por ejemplo con radianes y no se que historias de trigonometria?

ya intente dividir sobre 10 el resultado para que tenga mas presicion pero la bala avanza muy lento y no se como acelerarlo sin perder rendimiento , lo intente con un for dentro de un onEnterFrame y se prendio fuego la pc no se que hacer gracias saludos

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Abr 2008 03:12 am
en la escuela me la pasaba con las chicas en vez de estudiar
:? eso no te lo cree ni tu mama...
___________________________________________________________________________


Lo que planteas es muy facil.

Hay varias formas de hacerlo. hay te va una:
Tienes un vector que parte de A a B, con angulo C

A.- es un punto de refencia fijo cualquiera, digamos que es (0,0)
B.- es el puntero de tu mouse, (_mouse,_ymouse)

como el triangulo empieza en (0,0) tenemos un triangulo invertido...
tanC = op./ady. = _ymouse/_xmouse

por tanto...
C=Tan Inv.[_ymouse/_xmouse]

pero na hay Tan Inv....
C = [1/(Tan[_ymouse/_xmouse])]

Es todo, no te confundas.

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Abr 2008 03:13 am
Aca esta una clase sobre eso:
http://www.cristalab.com/tutoriales/177/trigonometria-en-flash-y-clases

Por cpucpu

82 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.