Supongamos que el proyectil del enemigo está en la posición a, mientras que nuestra nave está en la posición b. Podemos interpretar los puntos a y b como vectores desde el origen y calcular el vector desde a hacia b con la resta de vectores b-a
,
Por ejemplo, digamos que el proyectil enemigo está en (1,2) y nuestra nave está en (4,3). Para obtener el vector por el que viaja el proyectil, restamos la posición de la nave con la del proyectil:
Supongamos que el proyectil del enemigo está en la posición a, mientras que nuestra nave está en la posición b. Podemos interpretar los puntos a y b como vectores desde el origen y calcular el vector desde a hacia b con la resta de vectores b-a
,
Por ejemplo, digamos que el proyectil enemigo está en (1,2) y nuestra nave está en (4,3). Para obtener el vector por el que viaja el proyectil, restamos la posición de la nave con la del proyectil:
(4,3)-(1,2) = (4-1, 3-2) = (3,1)
PD: ¡Suerte con el matamarcianos! =)
Con eso obtienes el vector de dirección, para calcular la trayectoria (digamos el recorrido del proyectil) realiza lo siguientes pasos:
Luego de obtener ese vector (como dice el compañero Trabis): 1 - lo normalizas (si no tienes una librería que implemente matemáticas de vectores, los haces con lo siguiente (siguiendo el ejemplo de Trabis): - primero obtienes el tamaño del vector(3,1) = raiz_cuadrada(3 * 3 + 1 * 1) -normalizado(X,Y) = (3/tamaño, 1/tamaño)
Ahora para el recorrido del proyectil, suponiendo que posición es un Vector de 2 dimensiones, vas sumando a la posición el resultado de multiplicar el vector normalizado por la velocidad a la que debe moverse: posicion = posicion + normalizado * velocidad
Ya solo faltaría la lógica de donde termina el recorrido.
Ojalá he dicho esto de manera clara, si no, no dudes en preguntar.