从上图中我们可以看出,从白色的开始点出发,A* 算法搜索了开始点附近的所有节点并沿着离目标点最近的节点找到了一条可达路径.当 A* 算法找到目标点后,他就通过回溯父节点的方式来重建路径....或者 is_close 变量.你可以在节点中保存一个变量,用以表示节点是否在开放列表中或者关闭列表中.通过这种方式,当你需要搜索一个列表中的节点时,你就可以不用在整个列表中搜索节点,而是直接检查对应的变量值即可...和 HPA 不同的是, JPS 不需要预计算任何数据,他的优势在于遍历开放列表和关闭列表的开销很小.需要注意的是, JPS 只支持规则网格(节点)的寻路,即使你的游戏地图包含不同寻路成本(距离)的网格或者区域..., JPS 也只会把他们当做统一成本(距离)的网格或者区域.不过也正因为只支持规则网格的关系,JPS 才能够跳过网格的某些扩展方向,️而相对应的, A* 算法则需要扩展网格的所有可能方向.在 JPS 中...CalculateFopt 是一个用来计算节点 G 值 和 H 值 的函数,方法上主要是检查了节点间是对角距离还是水平(或垂直)距离.我们需要做的最后一件事是,当我们搜索到目标点后,如何回溯节点直到返回开始点