Je fais un jeu 2D. Il y a actuellement un hélicoptère volant autour, contrôlé par le joueur. Il est contrôlé à l'aide des touches fléchées: HAUT, GAUCHE et DROITE.
C'est la vitesse le long de l'axe y dy
et la vitesse le long de l'axe x dx
.
Sa physique est la suivante:
Chaque fois que UP n'est pas enfoncé , dy
accélère en accélération constante, indéfiniment vers le bas. (La gravité). dx
reste dans sa valeur actuelle.
Lorsque UP est enfoncé , dy
accélère en accélération constante de ce qu'elle est actuellement, jusqu'à 4 (vers le haut, jusqu'à ce qu'elle atteigne la vitesse 4). dx
reste dans sa valeur actuelle.
Lorsque GAUCHE est enfoncé , dx
accélère en accélération constante, quelle qu'elle soit actuellement, jusqu'à -4 .
Lorsque vous appuyez à DROITE , dx accélère en accélération constante, quelle qu'elle soit actuellement, jusqu'à 4 .
(Lorsque GAUCHE ou DROITE sont enfoncés et HAUT n'est pas enfoncé simultanément, comme je l'ai dit: dy
devient de plus en plus petit, car la gravité affecte l'hélicoptère)
Tout cela fait que l'hélicoptère suit souvent des arcs en l'air plutôt que des lignes droites.
Cela crée une physique qui semble assez réaliste.
Ma question est:
L'hélicoptère adverse, une IA, devrait se déplacer en utilisant le même système physique.
Disons que l'IA veut se rendre d'où elle est actuellement, au point B.
S'il n'y avait pas de gravité et aucune accélération progressive dans le jeu, ce serait facile. Je dessinerais simplement un vecteur de la position de l'IA au point B et je ferais en sorte que l'IA le suive.
Mais comme il y a de la gravité et une accélération progressive, l'IA ne peut jamais (presque) se déplacer en ligne droite . quelle serait la meilleure façon de faire passer l'IA au point B, le plus rapidement possible?
Comment puis-je prendre en compte la gravité lors du déplacement de l'IA vers une destination spécifique?
(Si c'est plus facile à expliquer, veuillez considérer que le point B est au même niveau sur l'axe des y que l'IA, et non en diagonale par rapport à lui.)
Merci