我正在制作2D游戏。当前有一架直升飞机在飞行,由玩家控制。使用箭头键UP,LEFT和RIGHT进行控制。
沿y轴的速度为dy
,而沿x轴的速度为dx
。
它的物理如下:
只要不按UP,就dy
以恒定的加速度无限期地加速。(重力)。dx
保持其当前值。
当被按压UP,dy
加速在恒定加速度从不管它目前是,高达4(向上,直到它到达速度4)。dx
保持其当前值。
当按下左,dx
加速在不断加速,从不管它目前,达-4。
当RIGHT被按下,DX加速时在恒定加速度,无论从任何它目前是,高达4。
(当我按下左键或右键而未同时按下UP 键时,我说过:dy
由于重力影响直升机,它越来越小)
所有这些使直升机经常沿空中拱形而不是直线。
这产生了看起来很现实的物理学。
我的问题是:
敌方直升机,即AI,应使用相同的物理系统移动。
假设AI希望从当前位置到达B点。
如果游戏中没有重力且没有逐渐加速,那将很容易。我只需从AI的位置绘制一个向量到B点,然后让AI跟随它。
但是,由于存在重力和逐渐的加速度,所以AI永远无法(几乎)沿直线运动。使AI尽可能高效地到达B点的最佳方法是什么?
将AI移至特定目的地时,如何考虑重力?
(如果更容易解释,请考虑B点在y轴上与AI处于同一水平,而不是与之成对角线。)
谢谢