功能描述:

结合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

转载于:https://www.cnblogs.com/Cson/archive/2012/02/22/2362369.html

【CSON原创】A*算法+HTML5实现游戏寻路相关推荐

  1. 【CSON原创】基于HTML5的横版射击游戏发布

    功能说明: 基于HTML5的横版射击游戏,参考自flash游戏<双面特工>.左右方向键控制移动,下方向键蹲下,上方向键跳跃,空格键射击.体验前请先关闭输入法. 该游戏基于自己开发的HTML ...

  2. 【CSON原创】基于HTML5的超级玛丽游戏demo

    功能说明: 基于HTML5的超级玛丽游戏的demo,方向键左右控制移动,方向键上控制跳跃,该游戏基于本人开发的HTML5游戏框架cnGameJS(详情点击这里:HTML5游戏框架cnGameJS开发实 ...

  3. 【CSON原创】HTML5游戏框架cnGameJS开发实录

    cnGameJS是本人开发的一个基于HTML5的游戏框架,包括资源加载,碰撞检测,动画等模块.本系列文章主要介绍各个模块的开发流程,以及附上两个使用该框架进行开发的游戏demo. 目录: 1.核心函数 ...

  4. 游戏寻路中 A* 算法的改进

    在众多寻路算法中,A* 的确是比较不错的.但在游戏寻路领域,A* 耗时过大,显然需要改进. 改进 我的想法是预先将地图按照一定的规则划分为多个区域,这些区域彼此连通,并且计算好彼此连通的区域之间的来往 ...

  5. a算法和a*算法的区别_游戏寻路中 A* 算法的改进

    在众多寻路算法中,A* 的确是比较不错的.但在游戏寻路领域,A* 耗时过大,显然需要改进. 改进 我的想法是预先将地图按照一定的规则划分为多个区域,这些区域彼此连通,并且计算好彼此连通的区域之间的来往 ...

  6. 游戏思考24:游戏寻路算法思考和Unity场景相关代码开发原则及导入地图数据(10/09)

    文章目录 一.游戏寻路算法 1)总体划分为 2)取几种算法详细介绍 (1)JPS介绍及其优化 二.场景相关开发原则 1)Unity开发商业项目场景开发基本原则 2)商业项目的大体流程和组织思路 一.游 ...

  7. HTML5 Canvas游戏开发实战 PDF扫描版

    HTML5 Canvas游戏开发实战主要讲解使用HTML5 Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5 Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读 ...

  8. A*搜索算法--游戏寻路

    文章目录 1. 算法解析 2. 总结 仙剑奇侠传这类MMRPG游戏中,有人物角色 自动寻路功能.当人物处于游戏地图中某位置时,点击另一个相对较远的位置,人物就会自动地绕过障碍物走过去.这个功能是怎么实 ...

  9. HTML5 2D 游戏开发(一): Snail Bait 简介

    开始您的第一个平台视频游戏 在本系列中,HTML5 专家 David Geary 将向您展示如何逐步实现一个 HTML5 2D 视频游戏.第一期的文章将向您展示一个已完成的游戏,然后引导您从头开始实现 ...

最新文章

  1. Activit流程部署、删除
  2. ASA 独立实现WEB URL过滤!!!
  3. 科学记数法数字转换/保留数值小数点位数(数字格式化)
  4. http路径转file会变成反斜杠_PHP session反序列化漏洞
  5. 【工具】13 款 Linux 实用工具推荐,个个是神器!(附下载链接)
  6. git 冲突覆盖_git pull冲突解决之强制覆盖
  7. 添加gitlab远程账号 使用注意事项
  8. solidity事件详解
  9. 超简单让.NET Core开发者快速拥有CI/CD的能力-Docker版本
  10. java hadoop_单元测试Java Hadoop作业
  11. pycharm 快捷键
  12. UC浏览器怎样收藏视频
  13. 【文件系统】NTFS、FAT32、exFAT
  14. 2020数学建模B题
  15. 2021中兴捧月杯算法大赛模面大赛总结
  16. MATLAB代码:考虑退化成本的混合储能微电网双层能源管理系统 可再生能源 (RES) 和储能系统 (ESS) 在微电网中的集成为最终用户和系统运营商提供了潜在的利益
  17. 开始我的Python学习历程
  18. 怎样去除图片水印?教你一个一键去除水印的方法
  19. 如何取消PPT中的动画效果
  20. HDU.5128 The E-pang Palace

热门文章

  1. 如何利用笔记本自带读卡器放入存储卡+ReadyBoost加快笔记本电脑的速度
  2. linux grep时间排序,关于排序:Linux grep和排序日志文件
  3. Node.js(黑马)笔记02--mongodb数据库操作
  4. 关于CommandTimeOut
  5. 重新编译覆盖安装ubuntu16.04自带的python3.6.2
  6. ASP.NET MVC自定义AuthorizeAttribute篇知识点讲解—登录限制
  7. VR虚拟旅游,VR智能线上全景旅游体验
  8. 计算机无法拔出gtx950,玩游戏提示弹出GTX950M时出问题?驱动人生帮你解决问题...
  9. 蓝桥杯 python 走迷宫 BFS
  10. html里的图片地址怎么搞,HTML图片的地址怎么写