C++实现的AStar寻路算法移植到JavaScript后路径无法绘制问题求助
问题修复方案
你的代码存在3处可直接导致parent属性不生效、路径无法渲染的问题,按优先级修改即可:
- 属性名拼写错误:你初始化起点参数时写的是
start.localGlobal = 0,正确属性名应该是localGoal,修改为:
start.localGoal = 0;
- 函数名拼写错误:邻居节点估值计算时你写的是
heurisitc(n, end),正确的函数名是heuristic,多输入了一个冗余字符i,修改为:
n.globalGoal = n.localGoal + heuristic(n, end);
- 排序回调逻辑错误:JS的
Array.sort()回调需要返回数值而不是布尔值,你当前的排序逻辑无法正确按全局估值从小到大排序节点,修改排序部分代码为:
notTested.sort(function(a, b) { return a.globalGoal - b.globalGoal; });
修改完以上3处后,A*算法就能正确计算节点父子关系,渲染出预期的黄色路径。
内容的提问来源于stack exchange,提问作者Conkuist
相关产品推荐
相关产品推荐

