源码地址:GitHub - NickMonkeys/AStar: A星寻路 CocosCreator
语言:TypeScript
demo:CocosCreator2.4.3 游戏demo
算法代码位置:AStar/assets/lib/AStar.ts
A星寻路介绍:
一、前提
算法假定在一个有限的网格地图中,主角每次移动一个格子,每次只能沿着格子进行上下左右移动。
二、功能
算法实现了选定目标起始位置和目标位置后,找出从起始位置到目标位置的最佳路线并自动绕过障碍物。
三、实现
1.准备一个openList和一个closeList。openList用来存储下一步所有可走的格子,closeList用来存储所有走过的格子。
2.准备一个obstaclesMap,用来存储所有障碍物,用障碍物坐标作为key,方便查找。
3.寻路初始化:指定地图大小;
4.寻路初始化:指定起始点和目标点;
5.寻路初始化:将所有障碍物存入obstaclesMap;
6.寻路开始:将起始点加入openList,表示我们从这里触发,是我们第一步可以走的点;
7.寻路1:从openList中取出一个点作为nextNode,获取这个点下一步所有可走的点,存入nextList;
8.寻路2:如果寻路1中nextList长度为0,说明没有路可走了
9.寻路3:如果寻路1中nextList长度为大于0,则将nextList中的点都放入openList,并把寻路1中nextNode点放入closeList
10.寻路4:回到寻路1