小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man

继续A星算法,我们在经历了地图的检测,并且检测open列表和close列表之后。如果还没有被加入到open和close列表中,我们就把他加入到我们的open列表中,方法如下:

很简单,就是设置我们之前已经提到过的参数,然后使用堆排序排列如下:

堆排序之前已经介绍过,就是保证树形结构的父节点的f值比子节点的f值小就可以了

之后我们就进入这样的循环:首先把起点放入close列表,并检测这点周围点的f值(g+h,h我们通过本点到终点的横纵索引差估计而来),把剩下的点放入open列表中,并根据f值进行堆排序,然后把f值最小的点放入close列表中,继续处理,直到找到终点为止。其实之前我们进行的就是这个步骤。

然后我们找到路径后就通过getpath把路径存入到path数组中就可以了

我们就是把close列表中的节点一个个的插入到path中,直到找到起始点,也就是说g代价为0的点就结束了。

最后作一些处理,我们的A星算法就完成了。

处理的代码如下

首先就是将open和close列表清空,以便下一次使用,然后如果我们的path中的数量为0时,返回空值,否则检测path中有没有终点,如果没有加入终点并返回path。

到此A星算法已经完成,下一篇讲解如何使用这个类

如有错误之处,希望大家多多指正

下一篇继续A星算法游戏实例

转载于:https://www.cnblogs.com/manshuoquan/archive/2012/02/29/5347192.html

cocos2d-x游戏实例(8)-A星算法(4)相关推荐

  1. cocos2d-x游戏实例(5)-A星算法(1)

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 继续上一篇地图上的处理,不过和本篇相比,我们之 ...

  2. cocos2d-x游戏实例(9)-A星算法(5)

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 上一篇我们已经完成了A星算法,那么如何使用呢, ...

  3. cocos2d-x游戏实例(7)-A星算法(3)

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 继续上一篇的内容,我们再看我们上一篇进行的部分 ...

  4. cocos2d-x游戏实例(6)-A星算法(2)

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 上一篇中我们研究了A星算法的基本概念,本篇介绍 ...

  5. Java游戏服务器开发之A星算法

    Java游戏服务器开发之A星算法    学习这个主要是用于寻路算法.    参考资料主要是siki学院的视频,A计划--人工智能--A星算法. 网址http://www.sikiedu.com/cou ...

  6. iOS cocos2d 2游戏开发实战(第3版)---你的第一个游戏!

    2019独角兽企业重金招聘Python工程师标准>>> 随着苹果公司不断地创新与发展,新的iPhone 5.iPad 4以及iPad mini产品相继问世,包括iOS与Xcode在内 ...

  7. cocos2d-x游戏实例(13)-简易摇杆控制主角

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 上两篇文章都介绍的触屏地操作,其实进入智能机时 ...

  8. cocos2d-x游戏实例(11)-触屏主角移动轨迹

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 最近在玩间谍鼠这个游戏,其中有一个触屏操作主角 ...

  9. 【A星算法的优化方案】

    当地图很大的时候,或者使用A星算法的寻路频率很高的时候,普通的A星算法就会消耗大量的CPU性能急剧下降,普通的A星性能还是不过关.接下来我们讲讲A星寻路在遇到性能瓶颈时的优化方案. 一.长距离导航 当 ...

最新文章

  1. Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转)
  2. jQuery基础 (一)—样式篇
  3. 广告影响网站打开速度解决方案
  4. 高斯消去法c++_高斯消去法的算法改进
  5. 这些焊接不良,你遇见过吗?
  6. AssetsLibrary使用介绍
  7. 客户端调用Web服务
  8. idea2020.01的git下的Local Changes消失的问题
  9. (四)微调ResNet50以诊断COVID-19
  10. 子空间方法——MUSIC算法
  11. OC 教程 极光推送
  12. 如何在 win 10 上安装 IIS
  13. codesys 简单案例_CoDeSys编程手册范本
  14. cannot import name ‘_validate_lengths‘ from ‘numpy.lib.arraypad‘错误
  15. 大学计算机简单的感想,爱计算机的我大学生活感悟
  16. 解决新版edge浏览器首页被搜狗、haoqq等垃圾搜索引擎捆绑问题,并将启动首页设为edge自带新标签页
  17. 桌面图标变白,任务栏图标变白
  18. 数据集分类不平衡的影响与处理
  19. R语言画相关系数矩阵图
  20. asp.net面试题

热门文章

  1. java内存溢出排查jstack_Java命令行监控工具(jmap,jstack,jstat,jinfo,jps)
  2. java为何是跨平台语言,以及java如何运行
  3. 012_JDBC模板
  4. java线程 demo_Java多线程demo
  5. NTFS 在linux上挂载,parted分区工具用法
  6. 摆脱“人肉”审核,从0搭建可视化SQL自动审核平台
  7. 从Linux上查看接口路由IP(吓一跳ip)
  8. ANSYS Products 19.1 安装教程
  9. 职业技术学校计算机专业部教师,江安职校计算机专业部召开第二次全体教师大会...
  10. 浙大计算机知识基础,计算机基础知识题浙大远程