我目前正在为一个游戏中的寻路问题工作,其中单位在移动时具有惯性。大多数典型的寻路算法(如A*、Djikastra等)仅设计用于最小化路径长度。
然而,据我所知,这些技术并不适用于单位具有惯性的情况。如果单位具有惯性,则根据您要前往的方向离开特定方向的瓷砖的成本会有显着差异。
例如,如果您从东侧进入瓷砖,则离开瓷砖向北行进的成本将显着高于从南侧进入的成本。(在前一种情况下,您必须减速以停止东西向速度,而在后一种情况下,您可以直接通过。)
系统具有惯性意味着为了转弯,您可能需要提前减速。我目前的最佳想法是计算减速所需的额外时间,然后将其添加到移动的启发式成本中。但是,这似乎意味着您永远无法将瓷砖添加到关闭列表中,因为从另一个方向进入可能会从根本上改变移动成本。
那么,是否有办法解决寻路中的惯性问题?
然而,据我所知,这些技术并不适用于单位具有惯性的情况。如果单位具有惯性,则根据您要前往的方向离开特定方向的瓷砖的成本会有显着差异。
例如,如果您从东侧进入瓷砖,则离开瓷砖向北行进的成本将显着高于从南侧进入的成本。(在前一种情况下,您必须减速以停止东西向速度,而在后一种情况下,您可以直接通过。)
系统具有惯性意味着为了转弯,您可能需要提前减速。我目前的最佳想法是计算减速所需的额外时间,然后将其添加到移动的启发式成本中。但是,这似乎意味着您永远无法将瓷砖添加到关闭列表中,因为从另一个方向进入可能会从根本上改变移动成本。
那么,是否有办法解决寻路中的惯性问题?