,使用一些基本的寻路算法(譬如 BFS, Dijkstra 或者 A* 等等)就可以很好的解决寻路问题,但是在另一些游戏中,尤其是在游戏地图比较庞大的情况下,这些基本寻路算法需要耗费大量的时间进行寻路,...HPA
分层寻路会将原始地图预处理成一张更低层级的地图,其中原始地图会被分为多个簇(块),这些簇之间的距离和最优路径会被预先计算并缓存起来.实际寻路时,首先在更低层级的地图上(即簇之间)进行寻路,然后,...正如我们在上图中所看到的,各个网格(节点)都按簇的方式进行划分,并且在这些簇上有用于连接相邻簇的出口,一旦我们将簇的出口(也是网格,或者说节点)进行相连,我们就可以得到簇从一条边(出口)到另一条边(出口...算法流程
暂略(译注:原文在这里通过示例描述了 JPS 算法在 水平方向 与 对角方向 搜索节点的流程,但是描述的比较简略,也存在一些错误,在此暂时省略翻译,有兴趣的朋友可以阅读这篇文章来了解 JPS...通过这个节点数组,我们就可以通过网格的位置(索引)直接访问节点数据,这对于节点遍历非常有用.一旦我们有了节点数据,我们就可以执行 A* 算法了,我们要做的第一步就是在该数组中填充原始节点,我们使用的填充函数是