Dado que hay un espacio bidimensional, y 1 nave espacial amiga parada, un enemigo NO se mueve directamente a la nave amiga con posición, velocidad y dirección reales conocidas.
La nave amiga quiere entrar en el campo de tiro para luchar contra el enemigo.
En realidad, estoy configurando solo un vector directo a la posición real de la nave en movimiento, y lo recalculo cada cuadro, resultando en una especie de trayectoria de vuelo "redonda".
Lo que quiero es establecer un camino directo y directo a la posición que tendrá el enemigo (presumiblemente) cuando se alcance la distancia de disparo, suponiendo que el enemigo no cambiará de rumbo hasta entonces.
Como primera implementación "simple", sería suficiente si asumimos que el amigo puede acelerar de 0 a máximo en poco tiempo.
La implementación preferida sería aquella que considera las capacidades de aceleración del amigo y sabe cuándo la intercepción es imposible debido a la velocidad. Debería funcionar para cada velocidad de arranque, no solo desde parado. Una ventaja sería incluso si considera el frenado (luchar contra la velocidad de la luz es muy ineficiente en el universo dado)
fuente
Le sugiero que analice los comportamientos de dirección. Especialmente persecución . El código fuente se puede encontrar en la implementación de OpenSteer o buscar un libro como " Programando IA del juego por ejemplo " (ISBN 13: 978-1556220784)
fuente