Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AI:对移动物体开火_C#_Artificial Intelligence_Extrapolation - Fatal编程技术网

C# AI:对移动物体开火

C# AI:对移动物体开火,c#,artificial-intelligence,extrapolation,C#,Artificial Intelligence,Extrapolation,我试图用C语言制作一个具有统一性的AI,它可以预测运动物体被子弹击中的估计位置 运动物体的运动速度为5f,子弹的运动速度为7f 我的问题是,当我的子弹到达我估计的位置时,我的敌人已经移动得更远了,子弹没有击中 你知道一个公式或代码,我可以适应,以改善我的目标人工智能?已经在谷歌上寻找了,但没有找到任何有用的东西 谢谢 这里是最重要的答案,从那里的情况下,链接死亡。我没有写这段代码,我只是用谷歌搜索一下你的问题,你说你已经试过了 链接答案: 获取目标玩家的速度。乘以子弹到达目标所需的时间。然后得到

我试图用C语言制作一个具有统一性的AI,它可以预测运动物体被子弹击中的估计位置 运动物体的运动速度为5f,子弹的运动速度为7f

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

你知道一个公式或代码,我可以适应,以改善我的目标人工智能?已经在谷歌上寻找了,但没有找到任何有用的东西

谢谢

这里是最重要的答案,从那里的情况下,链接死亡。我没有写这段代码,我只是用谷歌搜索一下你的问题,你说你已经试过了

链接答案:

获取目标玩家的速度。乘以子弹到达目标所需的时间。然后得到目标的位置,加上速度*时间向量,这就是你应该瞄准的位置。你可以硬编码旅行时间半秒,或者别的什么,或者你可以反过来测量AI和玩家之间的距离,除以子弹旅行时间,得出一个大概的旅行时间。你也可以用一个微分方程来计算精确的撞击时间和精确的方向,但这需要更多的数学知识,而且写出来会稍微困难一些,所以我认为上面的内容对你最合适

简单地说:

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

这是我已经做过的,但子弹所花费的时间会增加或减少距离。为了更精确的瞄准,我需要使微分方程从未使用过它?我不明白你的意思。上面的公式考虑了子弹的速度。这是因为你的子弹实际上在加速还是减速?如果子弹移动得很快,这个公式很有效,但如果像我的情况一样,时间很长,距离的变化超过了子弹的大小感谢快速的回答如果没有办法更精确地估计,我可以做一个循环来减少误差,但如果有更好的解决方法