引言
很多游戏特别是rts,rpg类游戏,都需要用到寻路。
寻路算法有 深度优先搜索(DFS),广度优先搜索(BFS),A星算法等,
而A星算法是一种具备 启发性策略的算法,效率是几种算法中最高的,因此也成为游戏中最常用的寻路算法。
在确定了寻路的开始点,结束点的情况下,假定每个方块都有一个F值,该值代表了在当前路线下选择走该方块的代价。
而A星寻路的思路很简单:从开始点,每走一步都选择代价最小的格子走,直到达到结束点。
辅助理解图:
下图中A是起点,B是终点,方格中的数值,左上方表示G值,右上方表示H值,下方表示F值。
举例:鼠标指向的方格,G值为14(斜向),H值为28(当前节点距离终点B最近的距离为两个对角线的距离也就是28),所以F=G+H = 42
A星算法核心公式就是F值的计算:
F = G + H
- F - 方块的总移动代价
- G - 开始点到当前方块的移动代价