cocos2d-x游戏实例(9)-A星算法(5)
2012-03-01 20:58
197 查看
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man
上一篇我们已经完成了A星算法,那么如何使用呢,我们会在这篇里介绍,还是回到MapScene中,我们首先来看接受用户输入ccTouchesBegan方法:
我们这是一个“指哪打哪”的例子,也就是说,用户点到哪个位置,我们的主角就会移动到哪个位置,我们首先用我们之前已经讲过的convertto2d把我们的点转换为45度角地图中的索引值,然后检测我们的索引是否在地图范围内
之后就该A星算法出场了,我们把主角位置索引,目标位置索引,以及地图都传入到findpath中,然后得到路径,为了检查,我们的代码中还遍历了path,并把它都显示出来
我们这里初始化了两个索引,一个是path中的点的索引,第二个就是每一步的索引,因为我们不可能一帧走一格。所以需要一个smallstepindex。
我们首先根据我们目前的位置和下一个path对象的位置决定我们的移动方向,然后移动。
我们每走16小步重定向一遍,即我们用16帧走完一个格,然后再进行上一步的处理,重新定一遍方向即可,底下的视角跟随算法保留,这里要说明的是我们使用a星类之前必须要在场景的初始化函数中创建一下,这里就不再赘述了。
如有错误之处,希望大家多多指正
下一篇继续游戏实例
上一篇我们已经完成了A星算法,那么如何使用呢,我们会在这篇里介绍,还是回到MapScene中,我们首先来看接受用户输入ccTouchesBegan方法:
我们这是一个“指哪打哪”的例子,也就是说,用户点到哪个位置,我们的主角就会移动到哪个位置,我们首先用我们之前已经讲过的convertto2d把我们的点转换为45度角地图中的索引值,然后检测我们的索引是否在地图范围内
之后就该A星算法出场了,我们把主角位置索引,目标位置索引,以及地图都传入到findpath中,然后得到路径,为了检查,我们的代码中还遍历了path,并把它都显示出来
我们这里初始化了两个索引,一个是path中的点的索引,第二个就是每一步的索引,因为我们不可能一帧走一格。所以需要一个smallstepindex。
我们首先根据我们目前的位置和下一个path对象的位置决定我们的移动方向,然后移动。
我们每走16小步重定向一遍,即我们用16帧走完一个格,然后再进行上一步的处理,重新定一遍方向即可,底下的视角跟随算法保留,这里要说明的是我们使用a星类之前必须要在场景的初始化函数中创建一下,这里就不再赘述了。
如有错误之处,希望大家多多指正
下一篇继续游戏实例
相关文章推荐
- cocos2d-x游戏实例(8)-A星算法(4)
- cocos2d-x游戏实例(5)-A星算法(1)
- cocos2d-x游戏实例(6)-A星算法(2)
- cocos2d-x游戏实例(6)-A星算法(2)
- cocos2d-x游戏实例(7)-A星算法(3)
- cocos2d-x游戏实例(8)-A星算法(4)
- cocos2d-x游戏实例(9)-A星算法(5)
- cocos2d-x游戏实例(5)-A星算法(1)
- cocos2d-x游戏实例(7)-A星算法(3)
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第二步---编辑器(1)--触摸加入点
- 《Cocos2d-x for iPhone游戏开发实例详解---1.3 为精灵着色》
- Cocos2d-x3.0游戏实例《不要救我》第一章——前言
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第三步---主角开跑&同时带着刚体
- 【木头Cocos2d-x 015】游戏实例-《跑跑跑》制作教程(第七篇)——添加能吃的物品以及胜利条件
- 【Cocos2d-x3.0学习笔记 10】游戏实例跑跑跑02
- Cocos2d-x游戏实例-《跑跑跑》制作教程(第一篇)——加载地图
- cocos2d-x游戏实例(28)-简易动作游戏(6)
- Cocos2d-x3.0游戏实例之《别救我》第四篇——乱入的主角
- Cocos2d-x3.0游戏实例之《别救我》第十篇(完结)——用Json配置各类型怪物数据
- cocos2d-x游戏实例汇总贴