单位有惯性时如何进行寻路?

时间:2015-06-08 22:25:53

标签: algorithm path-finding

我目前正在为一个单位正在移动的游戏寻找路径,但它们有惯性。大多数典型的寻路算法(A *,Djikastra等)都是为了最小化路径长度而设计的。

但是,据我所知,这些技术并不适用于装置具有惯性的情况。如果单位具有惯性,则根据您想要的方向将瓷砖留在特定方向的成本存在显着差异。

例如,如果从东方输入瓷砖,则从北方输入瓷砖的成本要高得多。 (在前一个例子中,你必须放慢速度以停止东西方速度,而在后者中,你可以直接通过。)

系统具有惯性意味着为了转弯,你可能必须在转弯前减速。我最好的想法是你计算减速所需的额外时间,然后将它加到启发式的移动成本上。但是,这似乎意味着您永远不能将瓷砖添加到关闭列表中,因为从另一个方向进入会从根本上改变移动的成本。

那么,有没有办法处理寻路中的惯性?

1 个答案:

答案 0 :(得分:2)

创建一个图形,其顶点是tile + inertia的各种组合,然后在该图形中执行正常的寻路算法。