我有一个包含2D点的等级,一个由用户控制,其余部分由所需的AI控制,这些点通过每秒施加一定量的力来移动,这个力被推入速度除以它们的质量,然后将其推入每秒的位置,在计算(动量)之间保持速度。我正在寻找的是一种施力的方法,这样我就可以朝着一个特定的目标前进并发生碰撞。
我已经尝试将指向目标的归一化向量乘以设定力,如果两者的速度在启动时都为零,则可行,不幸的是,点将需要一个接一个地攻击多个目标,最终发生的是捕食者将围绕目标绕着每个旋转越来越近。感谢。
tl; dr我需要通过在2D中施加力来向AI移动目标。感谢。
答案 0 :(得分:2)
让v'
成为您想要与导引头一起假设的速度矢量。最简单的是,如果目标是在没有加速的情况下移动并且你的寻求者会继续v'
他们会见面。 (*)
现在不要只以v'
的形式添加一些动力!让v
成为寻求者当前的速度。您需要在v' - v
的方向上施加一个力,以将您的导引头速度更改为v'
。
*)好的, 简单。会议点数无限多(除非目标仍然存在)。决定一个会面点可以通过选择一个给定量的动量可以达到的最早点来完成。
如果你每轮应用固定数量的能量而不是固定量的动量,那么你的游戏(?)会变得更加逼真。但这只是猜测。
为了使其逼真,您应该让质量与半径的平方成比例(假设带有圆的2D世界)或半径的立方(假设是3D世界和球体)。
动量为v m
,而能量为1/2 v^2 m
。当施加固定量的能量时,进一步加速快速物体变得更加困难。
实际上,为了保持固定的加速度[m / s / s],你需要每次增加一定量的能量,而你每次需要恒定的动量来做同样的事情。
如果你更接近遵循物理定律,这并不一定使它看起来更真实。我的意见是你应该尝试两种方式,并决定什么“感觉”最好。或者,如果你对它感到满意,就把它留下吧。
答案 1 :(得分:1)
请记住在时间now + t
移动到目标的位置。 t
是碰撞时间。你必须结合导引头和目标的运动方程,并求解t和向量。