笔记-----------------------------A*寻路算法
2015-09-01 20:10
295 查看
A*寻路算法
在写消除类小游戏的时候,我们可能会用到一种A*寻路算法,比如当我们手指移动到指定的色块上得时候,自动判断这个色块和上一个色块之间有没有可以连接的线路,如果有,允许这个色块加入可消除列表,如果没有则不添加
编程软件:Xcode ,游戏引擎:Cocos2d-x,编程语言:C++
首先,我们用tiledmap地图编辑器获得地图,tiledmap地图就好像是配置文件,通过tiledmap地图来配置游戏的一些基本设置,比如精灵的摆放
然后将地图加载到层
auto map=TMXTiledMap::create("xxxxxx.tmx");
addChild(map);
根据tiledmap配置精灵的摆放位置,创建一个经理类,主要在将地图坐标转换为世界坐标的时候,地图坐标的原点在位于地图左上角,地图的坐标是这样的:
(0,0)(1,0)(2,0)(3,0)(4,0)
(0,1)(1,1)(2,1)(3,1)(4,1)
(0,2)(1,2)(2,2)(3,2)(4,2)
判断图块的GID(注意:图块的GID是编辑地图时候的ID加上一)
auto sceneLayer=map->getLayer("layer1");
if (sceneLayer->getTileGIDAt(v) ==30)
{ }
在这个函数里面在ID为29的图块上添加精灵
精灵类里设置一个point类为成员,用于保存位置信息
point类里面有关于A*算法的,F、G、H值,以及父节点,还有用vec2保存地图坐标
在这里设置精灵的point成员,保存一些信息
在写消除类小游戏的时候,我们可能会用到一种A*寻路算法,比如当我们手指移动到指定的色块上得时候,自动判断这个色块和上一个色块之间有没有可以连接的线路,如果有,允许这个色块加入可消除列表,如果没有则不添加
编程软件:Xcode ,游戏引擎:Cocos2d-x,编程语言:C++
首先,我们用tiledmap地图编辑器获得地图,tiledmap地图就好像是配置文件,通过tiledmap地图来配置游戏的一些基本设置,比如精灵的摆放
然后将地图加载到层
auto map=TMXTiledMap::create("xxxxxx.tmx");
addChild(map);
根据tiledmap配置精灵的摆放位置,创建一个经理类,主要在将地图坐标转换为世界坐标的时候,地图坐标的原点在位于地图左上角,地图的坐标是这样的:
(0,0)(1,0)(2,0)(3,0)(4,0)
(0,1)(1,1)(2,1)(3,1)(4,1)
(0,2)(1,2)(2,2)(3,2)(4,2)
判断图块的GID(注意:图块的GID是编辑地图时候的ID加上一)
auto sceneLayer=map->getLayer("layer1");
if (sceneLayer->getTileGIDAt(v) ==30)
{ }
在这个函数里面在ID为29的图块上添加精灵
精灵类里设置一个point类为成员,用于保存位置信息
point类里面有关于A*算法的,F、G、H值,以及父节点,还有用vec2保存地图坐标
在这里设置精灵的point成员,保存一些信息
相关文章推荐
- 中国的学术界到底有多腐败?
- [华为oj]iNOC产品部-杨辉三角的变形
- 老师让我写博客,听了半天我脑子记混了!!!!!!
- inflate
- Mac(10.10.4) 下安装idea+部署tomcat+maven
- 各种的各种
- 程序员必知的八大排序的关系
- UVA 10816 Travel in Desert 最短路+Kruscal
- 操他妈的逼
- 【HEOI2015】【BZOJ4032】最短不公共子串
- 黑盒测试和白盒测试
- 一笔画游戏路径搜索代码<未优化>
- 常用排序算法PHP最精确写法
- logrotate机制及与监控结合测试
- #1224 : 赛车
- 唯一索引、聚集索引和聚集索引
- hibernate tools连接数据报错
- 003-spark名词和架构介绍
- 笔记----------------------------------c++小知识
- TCP三次握手详解