我目前正在为一个单位正在移动的游戏寻找路径,但它们有惯性.大多数典型的寻路算法(A *,Djikastra等)都是为了最小化路径长度而设计的.
但是,据我所知,这些技术并不适用于装置具有惯性的情况.如果单元具有惯性,则根据您想要的方向将瓷砖留在特定方向的成本存在显着差异.
例如,如果您从东方输入瓷砖,则从北方进入瓷砖时,离开瓷砖前往北方的成本要高得多. (在前一个例子中,你必须放慢速度才能停止东西方速度,而在后者中,你可以直接通过.)
系统具有惯性的事实意味着为了转弯,你可能必须在转弯之前放慢速度.我最好的想法是你计算减速所需的额外时间,然后将它加到启发式的移动成本上.但是,这似乎意味着您永远不能将瓷砖添加到关闭列表中,因为从另一个方向进入可能会从根本上改变移动成本.
那么,有没有办法处理寻路中的惯性?
最佳答案 创建一个图形,其顶点是瓦片惯性的各种组合,然后在该图形中执行正常的路径寻找算法.