Étant donné un espace bidimensionnel et 1 vaisseau spatial ami immobile, un ennemi ne se déplace PAS directement vers le navire ami avec la position, la vitesse et la direction réelles connues.
Le vaisseau ami veut se mettre à portée de tir pour combattre l'ennemi.
En fait, je ne fixe qu'un vecteur direct à la position réelle du navire en mouvement et je le recalcule à chaque image, ce qui donne une sorte de trajectoire de vol "ronde".
Ce que je veux, c'est définir une trajectoire directe et directe vers la position que l'ennemi aura (vraisemblablement) aura lorsque la distance de tir sera atteinte, en supposant que l'ennemi ne changera pas de cap jusque-là.
En tant que première et "simple" mise en œuvre, il suffirait de supposer que l'ami peut passer de 0 à max en un rien de temps.
La mise en œuvre préférée serait celle qui prend en compte les capacités d'accélération de l'ami et sait quand l'interception est impossible en raison de la vitesse. Cela devrait fonctionner pour chaque vitesse de démarrage, pas seulement à l'arrêt. Un plus serait s'il considère même le freinage (se battre à la vitesse de la lumière est très inefficace sur le plan énergétique dans l'univers donné)
la source
Je vous suggère d'examiner les comportements de pilotage. Surtout la poursuite . Le code source peut être trouvé dans l' implémentation d' OpenSteer ou rechercher un livre comme " Programmation du jeu AI par exemple " (ISBN 13: 978-1556220784)
la source