所有的知识都来自于大师们的慷慨遗传,我们书写的只是他们的代代相传。
A星算法是最优的寻路算法,常用于游戏中寻找地图上2点之间最低耗价的路径,当然,没一点有各种属性,例如,点有横纵坐标,点有地形属性,是属于沼泽,还是沙丘,又或者是平地, 游戏中人物经过此点的耗价肯定是不一样的,这个耗价相当于数据结构中图上的权重,然而我们可以在游戏中设置路障(树木、山石等),让2点之间的路径减少,最终,在2点之间可能的路径上寻找一条最低耗价的路径。
首先要了解一个核心概念,耗价。耗价F=G+H。
G表示该点到起始点位所需要消耗的代价。H表示该点到终点的距离代价(就是距离乘以权重常数),就距离来讲有很多中设计,我们拿常用的曼哈顿距离来讲,如下图:
黑色的点是路障,图中左上角的方格的点坐标为(1,1),则起点的曼哈顿距离H=|X2-X1|+|Y2-Y1|=|9-3|+|2-4|=6+2=8,权重常数是1,图中每一个方格都有H值包括终点H=0。消耗代价我们应该