继承关系

CCTMXTiledMap -> CCNode

它由CCNode派生,我们已经知道CCNode是cocos2dx的舞台对象的公共父类,所以CCTMXTiledMap也是个舞台对象

成员

static CCTMXTiledMap* create(const char *tmxFile);

通过一个文件,创建一个地图对象,这个文件是由工具编辑的地图文件

static CCTMXTiledMap* createWithXML(const char* tmxString, const char* resourcePath);

创建一个地图,tmxString是一个xml,而resourcePath是一个资源路径。

TMX地图把地图划分成一个个层,

每个层又划分成一个个格子,格子里如果有精灵,这个精灵的图片需要从资源路径里去找

bool initWithTMXFile(const char *tmxFile);

通过tmx文件来初始化一个对象

bool initWithXML(const char* tmxString, const char* resourcePath);

通过一个xml字符串和一个资源目录来初始化对象

CCTMXLayer* layerNamed(const char *layerName);

获取层,一个tmx地图由一个或者多个图层构成,每个图层有一个字符串格式的名字,通过这个名字可以获取这个图层

CCTMXObjectGroup* objectGroupNamed(const char *groupName);

获取组,这个是另外一种组织方式,将精灵通过组的方式组合

CCString *propertyNamed(const char *propertyName);

获取属性名字

CCDictionary* propertiesForGID(int GID);

获取组的属性

其他

为什么要用tiledmap,在一个游戏里,有些场景部分是相同的,就像家里的地砖,为了节约内存,加快速度,我们可以只用一张图片就可以完成这些背景的绘制,所以砖块地图是需要的。

为什么分层:不同的层使得背景更加灵活,每个层都是一个批精灵类,需要用相同的图片,如果北京用到不同的图片,就必须分层。

在一些游戏中,通过层移动,尤其是不同速度的移动,形成更加逼真的运动感

cocos2dx进阶学习之CCTMXTiledMap的更多相关文章

  1. cocos2dx进阶学习之场景切换

    背景 在学习马里奥时,我们学习到从菜单场景到游戏场景的切换,代码如下 void CMMenuScene::OnStartCallBack( CCObject *pSender ) { CCDirect ...

  2. cocos2dx进阶学习之CCScene

    继承关系 CCScene -> CCNode -> CCObject CCScene抽象了一个场景的概念,类似舞台的一幕 函数 static CCScene *create(void); ...

  3. cocos2dx进阶学习之屏幕适配

    背景 在学习cocos2dx时,我们在main函数中发现一句代码, #include "main.h" #include "AppDelegate.h" #in ...

  4. cocos2dx进阶学习之CCEGLView

    继承关系 CCEGLView-> CCEGLViewProtocol CCEGLView是窗口,在不同平台上有不同的实现,而CCEGLViewProtocol是CCEGLView定义的接口,所以 ...

  5. cocos2dx进阶学习之CCAction

    CCAction在cocos2dx中,抽象了节点的动作.它由CCObject派生,因此它不是渲染节点. 它经常的用法是,创建一个action,然后让某个CCNode对象(一般是精灵),去执行它. 在马 ...

  6. cocos2dx进阶学习之瓦片地图编辑器

    之前学习了瓦片地图类,现在我们来学习下瓦片地图制作工具 这个是开源的工具,可以从网上下载,下面我们演示下怎么做地图 步骤1 将需要用到的图片放到一个目录下,比如我机器上就是d:\tiled,这些图片是 ...

  7. cocos2dx进阶学习之CCSprite

    继承关系 CCSprite -> CCNodeRGBA       ->   CCNode, CCRGBAProtocol CCTextureProtocol 从继承关系可以看出,CCSp ...

  8. cocos2dx进阶学习之CCLayer

    继承关系 CCLayer -> CCNode,CCTouchDelegate,CCAccelerometerDelegate,CCKeypadDelegate CCLayer在cocos2dx中 ...

  9. cocos2dx进阶学习之坐标转换

    在cocos2dx中,有四种坐标系 GL坐标系:左下为原点,x轴向右,y轴向上 UI坐标系:左上为原点,x轴向右,y轴向下 世界坐标系:与GL坐标系相同 本地坐标系:是节点(CCNode)的坐标系,原 ...

随机推荐

  1. 整数数组的定义,然后输入一个整数X,假定X不在这个数组,返回小于X位置的最大数目i而超过X位置的最小数目j

    //整数数组的定义,然后输入一个整数x,假定X不在这个数组,返回小于X位置的最大数目i而超过X位置的最小数目j: //如果X在该阵列,返回位置的阵列中的数. 资源: #include<iostr ...

  2. 原生js下拉刷新

    <!DOCTYPE html><html> <head>        <meta charset="UTF-8">         ...

  3. ImageMagick 转换 progressive jpeg

    什么是渐进式图片(Progressive JPEG)? 来自 张鑫旭-鑫空间-鑫生活 的解释: 不知诸位有没有注意到,这些jpg格式的图片在呈现的时候,有两种方式,一种是自上而下扫描式的,还有一种就是 ...

  4. C++中引用

    在C语言中&这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法.一.引用简介 引用就是某一变量(目标)的一个 ...

  5. C/C++存储区划分

    一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化 ...

  6. Maven POM配置释疑

    1.  对于有父子关系的Project, 父POM中依赖使用dependencies 和 dependencyManagement 的区别: dependencies: 即使子项目中不写该依赖项,仍然 ...

  7. JS 获取浏览器窗口大小clientWidth、offsetWidth、scrollWidth

    常用: JS 获取浏览器窗口大小   // 获取窗口宽度 if (windows.innerWidth) winWidth = windows.innerWidth; else if ((docume ...

  8. C++ enum 作用域问题和解决方案

    C++ 中的枚举类型继承于 C 语言.就像其他从 C 语言继承过来的很多特性一样,C++ 枚举也有缺点,这其中最显著的莫过于作用域问题--在枚举类型中定义的常量,属于定义枚举的作用域,而不属于这个枚举 ...

  9. 批量删除Kindle library 中的不想要的书籍

    这是一个书签形式的脚本  有全选  批量删除什么的   亚马逊本身的删除太麻烦了 网上转的  原帖在这里http://tieba.baidu.com/p/2249582757 改进版本http://t ...

  10. 帝国cms <!--list.var1-->,<!--list.var2-->的终极用法

    谢寒原创,转载注明. 在制作帝国cms列表时,如果我们希望同每篇文章之后就会有一条横线,或者分线代码,我们就需要用到多个<!--list.var—> 比如我们需要这样的效果 文章1  文章 ...