演示地址:http://changjiuxiong.gitee.io/a_star/
源码地址:https://gitee.com/changjiuxiong/A_Star
运行截图:
自定义地图:example/drawMap.html
不讲原理,A*算法已被讲烂。
我将A*算法封装成一个JS库,名为AStar。要计算一条路径,只需几行代码!
let task = new AStar.Task(); //新建寻路任务
task.setStart(40,0); //设置起点
task.setEnd(40,80); //设置终点
//设置障碍/墙
task.setWallFromArray([
39,40,
40,40,
41,40,
]);
task.findPath(); //找到路径
console.log(task.pathSet); //输出路径结果
5行代码完成最短路径查找!
注意:AStar默认路径行走方式为上下左右和斜角共8个方向,若想支持其他行走方式请自行阅读并修改源码(源码非常简单易读自信满满)