单位有惯性怎么寻路?
How to do pathfinding when a unit has inertia?
我目前正在为一个单位正在移动但有惯性的游戏寻找路径。大多数典型的寻路算法(A*、Djikastra 等)只是为了最小化路径长度而设计的。
但是,据我所知,这些技术不适用于单位有惯性的情况。如果单位有惯性,那么根据你想去的方向,在特定方向留下一个瓦片的成本会有显着差异。
例如,如果您从东方进入方块,则离开北方方块的成本明显高于从南方进入方块的成本。 (在前一个例子中,你必须减速才能停止你的东西向速度,而在后一个例子中,你可以直接通过。)
系统具有惯性这一事实意味着为了转弯,您可能必须在转弯之前充分减速。迄今为止我最好的想法是计算减速所需的额外时间,然后将其添加到移动的启发式成本中。但是,这似乎意味着您永远无法将图块添加到封闭列表中,因为从另一个方向进入可能会从根本上改变移动成本。
那么,有什么办法可以解决寻路中的惯性问题吗?
创建一个图,其顶点是 tile+inertia 的各种组合,然后在该图中执行正常的寻路算法。
我目前正在为一个单位正在移动但有惯性的游戏寻找路径。大多数典型的寻路算法(A*、Djikastra 等)只是为了最小化路径长度而设计的。
但是,据我所知,这些技术不适用于单位有惯性的情况。如果单位有惯性,那么根据你想去的方向,在特定方向留下一个瓦片的成本会有显着差异。
例如,如果您从东方进入方块,则离开北方方块的成本明显高于从南方进入方块的成本。 (在前一个例子中,你必须减速才能停止你的东西向速度,而在后一个例子中,你可以直接通过。)
系统具有惯性这一事实意味着为了转弯,您可能必须在转弯之前充分减速。迄今为止我最好的想法是计算减速所需的额外时间,然后将其添加到移动的启发式成本中。但是,这似乎意味着您永远无法将图块添加到封闭列表中,因为从另一个方向进入可能会从根本上改变移动成本。
那么,有什么办法可以解决寻路中的惯性问题吗?
创建一个图,其顶点是 tile+inertia 的各种组合,然后在该图中执行正常的寻路算法。