对地图点进行评分的寻路算法,选择评分最优作为下一个行走路径点(一直评一直走走到终点)F总分= G当前节点到开始节点的评分(确定值)+H曼哈顿距离(横格子+竖格子)
A星算法并不去遍历整个地图,而是只遍历了最短路径上的点和其周围的点,所以得到的是一种近似最优解。
让玩家控制的角色自动寻路到目标地点,或是让AI角色移动到目标位置,实际的情况可能很复杂,比如地图上有无法通过的障碍或者需要付出代价(时间或其他资源)才能通过的河流、沼泽等,想要让角色找到一条付出最小代价到达目标的路径,就需要使用一些特殊的算法,而A星寻路算法就是目前应用最广泛的寻路算法之一,unity asset store上广受好评的A* Pathfinding project插件也是基于A星寻路算法实现的,A星算法是一种寻找最短路径并避开障碍物的算法。
比如说一个FPS游戏的AI,游戏中玩家肯定会向火力范围内的敌人攻击,这时候如果为了走最短的路径而暴露在玩家的枪口下就得不偿失了,这时可以加大处在玩家攻击范围内的点的代价值,让AI在更短路径和受到攻击的风险之间做出权衡,或者某个地方有奖励道具,这时可以减少奖励道具附近的点的代价值,让AI更倾向于绕一些路去获取道具,总之理解了算法思想,就能灵活运用于各种寻路情境。