我有一个包含点的二维水平,一个由用户控制,其余由所需的人工智能控制,点通过每秒施加一定量的力移动,力被推入速度除以质量,然后每秒被推入位置,速度在计算(动量)之间保持。我要找的是一种施加力的方法,这样我就能朝着一个特定的目标移动并碰撞。
我试着将指向目标的规范化向量乘以设定的力,如果开始时两个向量的速度都为零,它就会起作用,不幸的是,点需要一个接一个地攻击多个目标,最终发生的情况是,捕食者会绕着目标旋转,每次旋转都会越来越近。谢谢。
博士,我需要人工智能在2D内用力朝目标移动。谢谢。

最佳答案

v'为你的导引头的速度矢量。最简单的是,如果目标在没有加速度的情况下移动,而你的探索者继续前进,他们就会相遇。(*)
现在不要仅仅以v'的形式添加一些动量!设v'为导引头的当前速度。你需要在v方向施加一个力来改变你的导引头速度。
*)好吧,没那么简单。有无限多的集合点(除非目标仍然存在)。决定一个会合点可以通过选择最早的一个点,可以达到给定的动量应用到导引头。
只是一句话
也许你的游戏如果你在每轮中使用固定量的能量而不是固定量的动量,就会变得更加真实。但这只是猜测。
关于质量
为了使其逼真,你可能应该让质量与半径的平方成正比(假设一个有圆的二维世界)或与半径的立方成正比(假设一个三维世界和一个球体)。
动量与能量
动量v' - v而能量v'。当应用固定量的能量时,进一步加速快速物体变得更加困难。
实际上,要保持一个固定的加速度[m/s/s],你需要一个不断增加的能量值,而你需要一个恒定的动量值。
警告
如果你让它更接近物理定律,这并不一定让它看起来更真实。我的意见是,你应该尝试两种方式,并决定什么“感觉”最好。或者,如果你对它感到满意,就让它保持原样。

08-25 21:58