-1

我尝试在 C# 中制作一个 AI(具有统一性),它可以预测移动物体的估计位置以用子弹击中它,移动物体的移动速度为5f,子弹的速度为7f

我的问题是,当我的子弹到达我估计的位置时,我的“敌人”已经移动得更远了,子弹没有击中

你知道我可以采用什么公式或代码来改进我的目标 AI 吗?(已经在谷歌中寻找,但没有找到任何有用的东西)

感谢

4

1 回答 1

3

虚幻引擎论坛对您的问题的回答

这是链接失效的最佳答案。我没有编写这段代码,我只是通过快速谷歌搜索你说你已经尝试过的问题找到了它。

链接答案:

获取目标玩家的“速度”。乘以子弹到达目标所需的时间。然后得到目标的位置,加上速度*时间向量,这就是你应该瞄准的位置。您可以对行程时间进行硬编码(半秒或其他任何时间),也可以反过来测量 AI 和玩家之间的距离,然后除以子弹行程时间,得出大致的行程时间。您还可以应用微分方程来计算准确的撞击时间和准确的方向,但这需要更多的数学运算并且写起来稍微困难一些,所以我认为上面的方法最适合您。

简单地:

Distance = Length(Target_Position - Firing_Position)
Time = Distance / Bullet_Speed
Predicted_Position = Target_Position + (Target_Velocity * Time)
于 2017-06-12T09:49:22.033 回答