AI:射击移动物体

时间:2017-06-12 09:38:53

标签: c# artificial-intelligence extrapolation

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

我的问题是我的子弹到达我的估计位置的时间我的“敌人”已经进一步移动并且子弹没有击中

您知道我可以调整的公式或代码,以改善我的定位AI吗? (已经在谷歌寻找,但没有找到任何有用的东西)

感谢

1 个答案:

答案 0 :(得分:3)

An answer to your question from unreal engine forums

如果链接死亡,这里是最佳答案。我没有写这个代码我只是通过快速谷歌找到你说过你已经尝试过的问题。

链接回答:

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

简单地:

Distance = Length(Target_Position - Firing_Position)
Time = Distance / Bullet_Speed
Predicted_Position = Target_Position + (Target_Velocity * Time)