手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >js版本A*寻路算法
js版本A*寻路算法
摘要:说到做游戏,必不可少的需要用到寻路算法,一般游戏里的寻路算法大多数都以A*算法为主,这里也就实现了js里采用a*寻路的程序,在51js和蓝色...

说到做游戏,必不可少的需要用到寻路算法,一般游戏里的寻路算法大多数都以A*算法为主,这里也就实现了js里采用a*寻路的程序,在51js和蓝色都开了帖。

程序是以前写的,后来也没有修正或者精简,有冗余之处大家还见谅一下。

当然,这个寻路算法也不是最优化的,像幻宇开发的“交点寻径法”也是个中精品,两者可谓各有千秋,只是如果地图很大的情况下,我们会惊讶于“交点寻径法”的迅速。

use A* to find path... /* written by 百晓生 email:jsrpg@126.com qq:156809986 msn:jscript_rpg@hotmail.com */ var closelist=new Array(),openlist=new Array(); var gw=10,gh=10,gwh=14; var p_start=new Array(2),p_end=new Array(2); var s_path,n_path=""; var num,bg,flag=0; var w=32,h=32; function GetRound(pos){ var a=new Array(); a[0]=(pos[0]+1)+","+(pos[1]-1); a[1]=(pos[0]+1)+","+pos[1]; a[2]=(pos[0]+1)+","+(pos[1]+1); a[3]=pos[0]+","+(pos[1]+1); a[4]=(pos[0]-1)+","+(pos[1]+1); a[5]=(pos[0]-1)+","+pos[1]; a[6]=(pos[0]-1)+","+(pos[1]-1); a[7]=pos[0]+","+(pos[1]-1); return a; } function GetF(arr){ var t,G,H,F; for(var i=0;is_path[3][0]){ if(arr[1]>s_path[3][1]){ if(IsPass((arr[0]-1)+","+arr[1])||IsPass(arr[0]+","+(arr[1]-1))) return false; } else if(arr[1]

【js版本A*寻路算法】相关文章:

让innerHTML的脚本也可以运行起来

JavaScript模版引擎的基本实现方法浅析

js实现文本框选中的方法

js-穷举法 (y0h)

js获取滚动距离的方法

js去字符串前后空格的实现方法

javascript实现行拖动的方法

js验证上传图片的方法

js禁止页面刷新与后退的方法

JS/Jquery判断对象为空的方法

精品推荐
分类导航