【问题标题】:How to make boids pursue a movable character in a 2d game如何让机器人在 2d 游戏中追求可移动角色
【发布时间】:2020-07-08 22:39:29
【问题描述】:
我想知道在一个使用寻路算法的自上而下的 2d 游戏中,让我的一群机器人追逐我的角色的最简单方法是什么?
我想我必须首先通过寻路找到通往玩家的路径,获得所需的矢量,然后从速度中减去该矢量以获得转向值。
我在 Craig Reynolds 的网站上找到了“Pursuit and Evasion 转向行为”,但我不确定我是否朝着正确的方向前进。
【问题讨论】:
标签:
javascript
vector
2d
path-finding
boids
【解决方案1】:
请注意,1999 GDC paper 中有更多细节。也有很多开源实现,比如this(回想起来,出奇的复杂)OpenSteer中的一个。
代理的 seek 行为简单地假定朝向静态目标的期望速度,并定义“转向力”,即该速度与其当前速度之间的误差/差异。
因此追求行为只需要估计当前目标位置。粗略的近似通常就足够了,因为它在动画帧/模拟步骤之后被丢弃。通常转向行为使用恒定速度预测,只需将当前速度乘以某个时间间隔。该间隔的一个有用估计是到采石场代理的距离除以我们当前的速度。
这与 (a) 追赶者是一群人,以及 (b) 基于寻路的模拟如何相互作用,将取决于您游戏的具体细节。可能你想在成群行为中加入一个小的追求“力量”,这样它就不会干扰群的性质。