cocos2d-x初探学习笔记(28)--CCTMXTiledMap
来源:互联网 发布:飞升真魔甲升级数据 编辑:程序博客网 时间:2024/05/18 01:43
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man
之前的瓦片地图集那篇当中讲解过地图有关类CCTMXTiledMap,但是还不够详细,在进行完一系列和该类有关的实例编写和讲解后,觉得有必要把CCTMXTiledMap补充进基础知识部分。首先看api
可以看到,CCTMXTiledMap继承于CCNode,这样addchild等cocos2d-x中的基本类都可以使用。
首先来看声明及初始化CCTMXTiledMap
CCTMXTiledMap *map = CCTMXTiledMap::tiledMapWithTMXFile("iso-test-zorder.tmx");
很简单,参数就是通过Tiles工具生成的.tmx文件(这个工具及其用法请看之前的瓦片地图集那一节,这里就不再赘述了)。如果初始化了一个地图,我们就可以通过addChild(map, 0, kTagTileMap)把它加入到我们的层次和场景中,然后要在该场景中获得这个地图实例,我们可以通过CCTMXTiledMap* map = (CCTMXTiledMap*) getChildByTag(kTagTileMap)来获得。
CCTMXTiledMap中的每一个tile都是CCSprite类型的,但是这个CCSprite并不是一直存在,而是当我们的程序中需要控制一个图素时(更改图素等),我们通过以下这个语句获得图素的CCSprite:
CCSprite *newadd = layer->tileAt(aimmapindex);
参数就是图素的横纵坐标索引值,获得这个CCSprite后,我们就可以控制这个CCSprie旋转,缩放,或者是给他挂上各种Action(通过runAction)
我们可以通过map->getMapSize().width和map->getMapSize().height获得地图横纵的图素个数。
我们可以通过map->getTileSize().width和map->getTileSize().height获得地图图素的宽高。
我们可以通过map->getContentSize().width和map->getContentSize().height获得整体地图的宽高。但是这个有个问题,就是当我们进行整个的地图缩放的时候,这个宽高值不会变化,我们必须通过map->getScale()获得缩放参数并把它乘以宽高及获得真实宽高。
关于地图的gid,我对gid的理解就是每个图素的索引,也就是说改变这个位置的gid值就改变了这个位置的图素图片,我们可以通过layer->tileGIDAt(ccp(mapindex.x,mapindex.y));来获得在某个位置的地图gid。并且可以通过layer->setTileGID(4,aimmapindex);设置某个位置的gid值,其中第一个参数为要设置的gid,第二个参数是本位置的宽高索引。
Gid还有个用途就是获得地图的属性值,这个属性值是通过Tiles工具来设置,用法如下:
CCMutableDictionary<string,CCString *> *tiledic = map->propertiesForGID(tilegid);
CCString *mvalue = tiledic->objectForKey("conflict");
int mv = mvalue->toInt();
获得的是个键值对,然后把它转变为我们需要的类型。
如有错误之处,希望大家多多指正
- cocos2d-x初探学习笔记(28)--CCTMXTiledMap
- cocos2d-x初探学习笔记(28)--CCTMXTiledMap
- cocos2d-x坐标(CCTMXTiledMap)
- cocos2d-x初探学习笔记(1)
- 【Cocos2d-X开发学习笔记】第25期:游戏背景之瓦片地图集类(CCTMXTiledMap)的使用
- Cocos2d-x CCTMXTiledMap类
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(1)--HelloWorld
- cocos2d-x初探学习笔记(4)--触屏事件
- cocos2d-x初探学习笔记(5)--动作管理
- cocos2d-x初探学习笔记(7)--CCProgressTimer
- cocos2d-x初探学习笔记(8)--场景特效
- cocos2d-x初探学习笔记(9)--粒子系统
- cocos2d-x初探学习笔记(12)--图形绘制
- cocos2d-x初探学习笔记(13)--内存回收机制
- 如何使用WebView访问https的url——处理SslError
- 向Jenkins学习 - What we can learn from Jenkins?
- Android 截图程序实现 需要root权限 (调用linux 命令)
- c#.net导出为Excel文件
- SQL数据库不同备份名称存放不同路径还原方法
- cocos2d-x初探学习笔记(28)--CCTMXTiledMap
- 几个基础排序算法(一)
- MySQL/Oracle等常用数据库比较
- js学习--eval()方法
- 最多约数问题
- Java并发学习笔记(5)停止基于线程的服务
- 专注于操作系统14之初识调用门
- 彻底了解指针数组,数组指针,以及函数指针,以及堆中的分配规则(转)
- 函数可重入性及编写规范