本节主要内容:
- javascript A*寻路算法astar.js使用简介
- 使用astar.js获得连接起止点的路径矩阵
- 使用requestAnimationFrame函数实现寻路场景
本节最终效果图如下:
javascript A*寻路算法astar.js使用简介
该项目Github地址为: http://github.com/bgrins/javascript-astar
实现寻路的案例代码为:
If you want just the A* search code (not the demo visualization), use code like this http://gist.github.com/581352
<script type='text/javascript' src='astar.js'></script>
<script type='text/javascript'>
var graph = new Graph([
[1,1,1,1],
[0,1,1,0],
[0,0,1,1]
]);
var start = graph.grid[0][0];
var end = graph.grid[1][2];
var result = astar.search(graph, start, end);
// result is an array containing the shortest path
var graphDiagonal = new Graph([
[1,1,1,1],
[0,1,1,0],
[0,0,1,1]
], { diagonal: true });
var start = graphDiagonal.grid[0][0];
var end = graphDiagonal.grid[1][2];
var resultWithDiagonals = astar.search(graphDiagonal, start, end, { heuristic: astar.heuristics.diagonal });
// Weight can easily be added by increasing the values within the graph, and where 0 is infinite (a wall)
var graphWithWeight = new Graph([
[1,1,2,30],
[0,4,1.3,0],
[0,0,5,1]
]);
var startWithWeight =