位置: 编程技术 - 正文
推荐整理分享cocos2d-x游戏实例(5)-A星算法(1)(cocos2d rpg),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:cocos2d rpg,cocos2d rpg,cocos2d游戏引擎,cocos2dx小游戏,cocos2d rpg,cocos2dx游戏开发教程,cocos2dx小游戏,cocos2dx游戏开发教程,内容如对您有帮助,希望把文章链接给更多的朋友!
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址 heart)中都是比较多地被采用了。
下面我们就介绍一下A星算法,他就是一种启发性的算法,根据现在到达这个位置的步数及之后的“估计步数”,即f=gh,f是整个从起点到终点的代价,g是从起点到我们目前位置的步数,h是从目前位置到终点的估计,注意这里是估计,所以我们得到解并不一定是最好的解,具体解“好”到什么程度呢?就是要根据h的估计的好坏,因此只是一个较优解。(以上的部分只能说是我对A星算法较为浅的理解,只能算是初探吧,有不足之处欢迎指正,这里只是为了更好的解释我的程序。)
我的程序的流程可以分为如下几步,有一个open表,有一个close表,open表首先存储我们的起点,然后由此出发,首先把起点放入close列表,并检测这点周围点的f(gh,h我们通过本点到终点的横纵索引差估计而来),把剩下的点放入open列表中,并根据f进行堆排序,然后把f最小的点放入close列表中,然后继续上面的循环,继续处理,直到找到终点为止。当然我们还要根据我们的游戏做一些处理即是处理地图中的碰撞等,我们要让我们的人物绕过碰撞。
首先看一下我们的程序结构
首先我们的MapScene得到了保留,然后Astar是A星算法的核心算法类,Astaritem是A星列表中的列表项,首先看Astaritem。
我们为了让此类更好的和cocos2d-x结合,也使用同样的内存管理机制,我们让此类继承与CCNode类,而其中有六个变量,分别是行列,g函数,h函数,f函数,和在堆排序中的父节点。我们采取set/get的方法来管理这六个
如有错误之处,希望大家多多指正
下一篇继续A星算法游戏实例
cocos2d-x游戏实例(6)-A星算法(2) 小满(billman)个人原创,欢迎转载,转载请注明地址,小满(billman)的专栏地址
cocos2d-x游戏实例(7)-A星算法(3) 小满(billman)个人原创,欢迎转载,转载请注明地址,小满(billman)的专栏地址
cocos2d-x游戏实例(8)-A星算法(4) 小满(billman)个人原创,欢迎转载,转载请注明地址,小满(billman)的专栏地址
标签: cocos2d rpg
本文链接地址:https://www.jiuchutong.com/biancheng/368998.html 转载请保留说明!上一篇:cocos2d-x初探学习笔记(27)--CCMutableArray(cocos2dx入门)
友情链接: 武汉网站建设