我有一个游戏,我对工作中已寻的导弹。 目前,他们只是把对他们的目标,这会产生一个相当愚蠢的寻找结果,大约有以下目标的所有导弹。
我想创建的导弹将瞄准更致命的气息,其中目标“将是”通过它到达那里,我变得有点卡住,困惑如何做到这一点的时间。
我猜我需要(反正猜测)到哪里工作我的目标将是在未来的某个时候,但我不能让我提前周围多远看头。 它需要基于导弹多远是远离目标,但目标也动人。
我的导弹具有恒定的推力,以把微弱的能力相结合。 希望是,他们将是快速和令人兴奋的,但避开像牛(即严重,对于非搭车球迷在那里)。
总之,似乎是一种有趣的问题的堆栈溢出来帮我解决,所以任何想法或建议,更好的或“更有趣”导弹都会受到欢迎。
接下来将是AI的躲着他们。
什么你的建议被称为“指令制导”,但还有一个更简单,更好的方法。
的方式,真正的导弹通常这样做(不是所有的都是一样)使用一种称为比例导航系统。 这意味着导弹导弹之间的“转向”,在同一方向线的视线的(LOS)和目标转弯,在转弯速率的“比例”的LOS率......这对你是什么要求当洛率为零,你是在碰撞过程。
您可以通过只从一秒到下一个比较misile与目标之间的线的斜率计算LOS率。 如果斜率没有改变,你是在碰撞过程。 如果它是变化的,计算的变化,并通过一定比例的角速率转动导弹...您可以使用代表导弹和目标位置的任何指标。
例如,如果使用为2的比例常数,并且被LOS向右移动在2度/秒,转动导弹向右在4度/秒。 LOS向左在6度/秒,导弹向左在12度/秒...
在3-d的问题是,除了“在LOS变化率”,(和由此产生的导弹转弯速率)相同本身是一个载体,即,它不仅是一个数量级,但方向(做我左转导弹,右或向上或以上水平的向下或30度到右侧,等等?? ...试想一下,作为一个导弹试验,在那里你会“中设置的翅膀”以应用提升...
雷达制导导弹,其中“知道”闭合速率。 调整基于闭合比例常数,使导弹将在高封闭场景在低闭合转动更积极地,(当的飞行时间是低级),和较不积极地(在封闭更高导弹试图转动更快) (尾追逐)时,它需要保存能量。 其他导弹(如响尾蛇),不知道封闭,使用恒定的预先确定的比例值)。 FWIW,越战时期的AIM-9响尾蛇导弹使用的4比例常数。
我用这个CodeProject上的文章之前 - 它有一些非常好的动画讲解数学。
“定位和模拟一个导弹的数学:从积分到四次式”: http://www.codeproject.com/KB/recipes/Missile_Guidance_System.aspx
(另外,隐藏在该文章的底部的评论是到参考一些C ++代码,完成相同的任务从虚幻维基)
看看OpenSteer 。 它有代码来解决这样的问题。 看看“steerForSeek”或“steerForPursuit”。
你有没有考虑负反馈对近期轴承随时间变化的变化?
详细留作练习。
这些建议完全是严重的:如果目标不操纵这应该获得接近最优的拦截。 它应该收敛,即使目标积极回避。
需要更详细?
求解为便于符号的二维空间。 采取\vec{m}
是导弹和矢量的位置\vec{t}
为目标的位置。 当前航向在运动对上次单元的方向: \vec{h} = \bar{\vec{m}_i - \vec{m}_i-1}}
令R为导弹和靶之间的normlized矢量: \vec{r} = \bar{\vec{t} - \vec{m}}
。 轴承是b = \vec{r} \dot \vec{h}
计算在每个时间刻度的轴承,以及它们,并改变标题,以尽量减少量的变化。
数学是因为需要找到行动的飞机在每一步的3D鹞,但过程是相同的。
你要插值目标和导弹作为时间的函数两者的轨迹。 然后寻找其中的物体的坐标是一些可接受误差范围内的时间。