Я делаю 2D игру. В настоящее время вертолет летит вокруг, управляемый игроком. Управление осуществляется с помощью клавиш со стрелками: ВВЕРХ, ВЛЕВО и ВПРАВО.
Это скорость по оси Y есть dy, а скорость по оси X есть dx.
Это физика выглядит следующим образом:
Всякий раз, когда ВВЕРХ не нажимается , dyускоряется с постоянным ускорением, неограниченно вниз. (Сила тяжести). dxостается в его текущем значении.
Когда нажата кнопка ВВЕРХ , dyускоряется с постоянным ускорением от того, что есть в данный момент, до 4 (вверх, пока не достигнет скорости 4). dxостается в его текущем значении.
Когда нажата кнопка ВЛЕВО , dxускоряется с постоянным ускорением, начиная с текущего значения, до -4 .
Когда RIGHT нажата , dx ускоряется с постоянным ускорением, от того, чем оно является в настоящее время, до 4 .
(Когда нажимаются ВЛЕВО или ВПРАВО, а ВВЕРХ не нажимается одновременно, как я уже сказал: dyвсе больше становится все меньше и меньше, потому что сила тяжести влияет на вертолет)
Все это заставляет вертолет часто следовать по аркам в воздухе, а не по прямым линиям.
Это создает физику, которая кажется довольно реалистичной.
Мой вопрос:
Вертолет противника, ИИ, должен двигаться, используя ту же физическую систему.
Допустим, ИИ хочет добраться от того места, где он сейчас находится, к точке Б.

Если бы в игре не было гравитации и постепенного ускорения, это было бы легко. Я бы просто нарисовал вектор из позиции ИИ в точку В и заставил ИИ следовать за ним.
Но поскольку есть гравитация и постепенное ускорение, ИИ никогда не сможет двигаться по прямой (почти). Каков наилучший способ заставить ИИ перейти в точку B, насколько это возможно?
Как я могу принять во внимание гравитацию при перемещении ИИ к определенному месту назначения?
(Если это легче объяснить, пожалуйста, рассмотрите точку B на том же уровне по оси Y, что и AI, а не по диагонали к нему.)
Спасибо
