2011-06-01 18 views
5

Voy a hacer un juego en el que corres con un personaje, visto desde arriba. Pero el problema es ¿cómo hago que el personaje mire el mouse todo el tiempo? ¿Y cómo calculo el ángulo para que pueda disparar hacia el mouse (donde estoy buscando actualmente). Supongo que tienes que jugar con la trigonometría y cosas así para obtener ángulos, pero realmente no sé cómo.Desarrollo de juegos en Java: mira y dispara las coordenadas del mouse

Soy bastante bueno en matemáticas, así que podría averiguarlo si me ayudan.

Y lo siento por mi mala Inglés, finalmente, estoy :) sueco

Gracias, Alexandberg

+0

Creo que respondió su propia pregunta ... use trig – gshauger

Respuesta

1
double angle = Math.atan2(yMouse-yChar, xMouse-xChar); 
+0

Eso no funcionó muy bien, creo. Acabo de obtener números de -3 a 3, pero no sé qué hacer con ellos. Pensé que los ángulos serían más como 0-360. – ASandberg

+1

Es -pi para pi en realidad porque está en radianes. Para convertirlo a grados, llame a Math.toDegrees() –

+0

Gracias, los ángulos están funcionando ahora (a excepción de los ángulos están entre -180 y 180, pero puedo arreglar eso). El problema es cómo dibujar una línea que va del jugador a través del mouse (continúa después de que toca la ubicación del mouse). En este momento obtuve la distancia entre el jugador y el punto del mouse y el ángulo. – ASandberg

1

como usted ha dicho una gran pista se puede encontrar en trig

Point pl = getCharacterLox(); 
Point mouse = getMouseLoc(); 
double cos = (mouse.getX()-pl.getX()); 
double sin = (mouse.getY()-pl.getY()); 
cos/=Math.hypot(cos,sin);//normalize 
double angle = Math.copySign(Math.acos(cos),sin); 

Solía un pequeño truco aquí en la última línea: acos está entre 0 y PI pero si el pecado es negativo debe ser negado, si sin es 0 evaluará a +0.0 y el ángulo será 0 o PI independientemente

+0

Muchas gracias, creo que lo tengo ahora. Editar: Cuando intento imprimir el ángulo para comprobar si funciona, está entre 0-3 (aprox). ¿Cómo saco el ángulo de eso? Porque no veo cómo voy a usar el ángulo en este momento para hacer cualquier cosa. – ASandberg

Cuestiones relacionadas