zoukankan      html  css  js  c++  java
  • cocos2dx进阶学习之CCTMXTiledMap

    继承关系

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

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

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

  • 相关阅读:
    permission 文档 翻译 运行时权限
    TabLayout ViewPager Fragment 简介 案例 MD
    Log 日志工具类 保存到文件 MD
    OkHttp 官方wiki 翻译 MD
    Okhttp 简介 示例 MD
    OkHttp 官方Wiki之【使用案例】
    DialogPlus
    倒计时 总结 Timer Handler CountDownTimer RxJava MD
    RecyclerView 判断滑到底部 顶部 预加载 更多 分页 MD
    CSS3的媒体查询(Media Queries)与移动设备显示尺寸大全
  • 原文地址:https://www.cnblogs.com/new0801/p/6177216.html
Copyright © 2011-2022 走看看