Comunidad de diseño web y desarrollo en internet online

problema medir velocidad de rotacion

Citar            
MensajeEscrito el 29 Ago 2010 07:10 pm
Necesito la ayuda del intelecto de la gente de este foro (???)

Tengo un clip que rota y apunta a donde tenes el mouse. Necesito poder medir la velocidad de rotacion de dicho clip, entonces lo que hice fue guardar en una variable el valor rotation de el frame anterior y compararlo con el mismo valor del frame actual y asi obtengo la velocidad, pero me surge un problema, caundo rota sobre la izquierda el parametro rotation pasa de ser 90º a 0º y el metodo que incorpore lo detecta como que la velocidad es muy alta, cuando en realidad solo se esta rotando 1 grado (o gradient) solo que esta volviendo a 0, no se me ocurre como puedo hacer para solucionar este problema.

desde ya muchas gracias.

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Ago 2010 06:51 pm
Pero seguramente hay un script que lo hace rotar, y donde puedes medir sin tener que comparar en frames ... ¿o me equivoco?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Ago 2010 08:06 pm
Gracias por tu respuesta, esa es una posible solucion si, igual lo solucione mas tipo remiendo, lo que hice fue que si la diferencia con el frame anterior es de 90º entonces que lo tome como diferencia 0

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Ago 2010 08:24 pm
¿Y por que tipo remiendo y no bien?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Ago 2010 08:46 pm
por que supongamos que el usuario hace rotar realmente el movieclip a una velocidad de 90º por fotograma (que seria muy raro e inhumano) entonces no lo registraria, en el caso del juego que estoy haciendo eso no es un problema, pero puede serlo en otro tipo de programas.

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Ago 2010 08:51 pm
Ok, mi punto es: si hay una rutina que lo gira, en esa misma rutina se puede medir cuanto gira, muchos juegos incluso lo hacen predictivamente en el caso de que haya disparos o colisiones de por medio. Anyway es solo un comentario, es tu juego.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Ago 2010 08:54 pm
Sisi totalemnte de acuerdo lo que pasa es que me dio paja hacerlo asi y la otra manera eran 5 segundos y ya estaba resuelto

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Ago 2010 08:55 pm
Ok, pero ten cuidado con los juegos: tempraneras pajas terminan en tardíos problemas que implican regresión. No siempre, pero mas veces de la que nos gustaría.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 31 Ago 2010 12:58 am
Hola, como dice Jorge depende de la rutina q uses para girar, t voy a aconsejar una (un poco al aire porq ya tengo tiempo q no la programo).

Como andas en trigonometria??

Siempre q tu quieras hacer girar un objeto siguiendo el mouse lo q haces es q el objeto va permanecer al centro de un eje d coordenas X y Y, y el mouse va estar a cierta distancia en coordenas X y Y.

Como cuando en fisica, en vectores, calculas una fuerza y un angulo, la magnitud d la fuerza (en este caso) es la distancia, el objeto q tu quieres girar va a ser a quien le aplicas esa fuerza en cierto angulo.

Al igual q en fisica vamos a calcular en este caso solo el angulo, q es lo q a ti t interesa:

Imaginemos q tenemos 2 objetos, el puntero y el objeto.

Ambos estan en un triangulo-rectangulo, el puntero y el objeto estan en ambos extremos del angulo recto del triangulo.
El puntero esta a 180ª y el objeto esta a 90ª, ambos separados por la hipotenusa.

Te recomiendo q dibujes esto para q tenga una mejor idea d lo t quiero dar a entender: dibuja el objeto a girar en el centro de un eje d coordenadas X y Y, luego traza la hipotenusa a un angulo q elijas (prueba con 225º) y despues completa el triangulo rectangulo, en el otro extremo d la hipotenusa coloca otro objeto como referencia para el puntero.

Ahora t puedes imaginar como al mover el puntero al rededor del objeto el mismo puede apuntar en la direccion puntero del mouse.

Bien, ahora para calcular el angulo d la hipotenusa (q siempre va a ser la linea d referencia entre el objeto y el puntero del mouse) debemos obtener el arcotangente (opuesto/adyacente) q en este caso van a ser las coordenas X y Y del puntero del mouse.

Entonces para q el objeto rote en direccion del mouse sería así:

objeto.rotation = Math.arctan2(mouse.Y/mouse.X);

Para acelerar la rotacion puedes multriplicar las coordenadas por algun numero, por ejemplo: mouse.X * 3, t lo dejo a tu criterio y es cosa d q juegues con los valores.

Lamentablemente ahorita ando un poco corto d tiempo por la universidad, si no, lo hacia d manera grafica obviamente es mejor y un poco mas detallado.

Saludos y espero q esto t sirva.

Atte. px87

Por px87

Claber

141 de clabLevel

1 tutorial

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 31 Ago 2010 01:17 am
gracias por tu mensaje px87, pero ya se, mi duda no tenia nada que ver con como hacer rotar a un MovieClip.

Por fermmm

Claber

122 de clabLevel



 

firefox

 

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