【CSON原创】A*算法+HTML5实现游戏寻路
功能描述:
结合A*算法和HTML5完成的一个寻路demo。
鼠标点击地图任意位置,飞鸟会寻找最短路程到达该位置。
效果预览:
代码分析:
具体的A*算法寻路逻辑请看这里推荐的一篇很好的文章,我就不再详述:
英文版:http://www.policyalmanac.org/games/aStarTutorial.htm
中文版:http://blog.vckbase.com/panic/archive/2005/03/20/3778.html
另外具体说说里面提到过的“穿越拐角规则”的实现:
所谓的“穿越拐角规则”,就是如下图中所出现的情况:假设绿色是障碍物,当右边的红色格子想到达上面的黄色方格,并不允许直接由红色方格跳到黄色方格,而需要经过蓝色方格的情况:
我的实现方法是判断使用当前格子的x值和下一个格子的y值的格子或者使用当前格子y值和下一个格子x值的格子是障碍物,则在该次寻路过程中忽略该格子。
代码:
if (isWall(pointsArr[i][point.x], this.wallValueArr) || isWall(pointsArr[point.y][j], this.wallValueArr)) {
//拐角规则,如果检测某点四周的点时,该点和四周上某点之间隔着一个障碍物,则忽略该点,暂不添加到开始列表
continue;
}
另外,demo中的效果使用了自己开发的HTML5游戏框架cnGameJS,关于cnGameJs详细请看这里:《HTML5游戏框架cnGameJS开发实录》
完整demo下载:点击这里
欢迎转载,请标明出处:http://www.cnblogs.com/Cson/archive/2012/02/21/2362369.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库