(注意TiileMap中每一层只能使用一种图块)

(TiledMap中的坐标是以左上角为原点,右边是x周,下边为y轴,但是在获取对象在地图中的坐标的时候,会自动转成以左下角为原点的坐标系)

[plain]

  1. static CCTMXTiledMap * create (const char *tmxFile);

    根据一个TMX文件以及资源路径,来创建一个背景地图

    [plain]

    1. static CCTMXTiledMap * create (const char *tmxString, const char *resourcePath);

      CCTMXTiledMap的成员函数:
      [plain]

      1. //得到地图背景的尺寸
      2. virtual const CCSize & getMapSize (void)
      3. //设置地图背景的尺寸
      4. virtual void setMapSize (const CCSize &var)
      5. //得到地图背景中砖块元素的尺寸
      6. virtual const CCSize & getTileSize (void)
      7. //设置地图背景中砖块元素的尺寸
      8. virtual void setTileSize (const CCSize &var)
      9. //获得物体层中所有对象
      10. virtual CCArray * getObjectGroups (void)
      11. //设置物体层的容器
      12. virtual void setObjectGroups (CCArray *var)
      13. //获得地图的属性
      14. virtual CCDictionary * getProperties (void)
      15. //设置地图属性
      16. virtual void setProperties (CCDictionary *var)
      17. //构造函数
      18. CCTMXTiledMap ()
      19. //析构函数
      20. virtual ~CCTMXTiledMap ()
      21. //一个初始化函数
      22. bool initWithTMXFile (const char *tmxFile)
      23. //另一个初始化函数
      24. bool initWithXML (const char *tmxString, const char *resourcePath)
      25. //根据图层的名字,来获得图层
      26. CCTMXLayer * layerNamed (const char *layerName)
      27. //根据物体层的名字,来获得物体层
      28. CCTMXObjectGroup * objectGroupNamed (const char *groupName)
      29. //根据属性的名字,来获得数值
      30. CCString * propertyNamed (const char *propertyName)
      31. //根据GID,获得属性字典
      32. CCDictionary * propertiesForGID (int GID)

        Cocos2d-x 瓦片地图图层类CCTMXLayer

        这篇文章为大家介绍瓦片地图的图层:-x中的图层分为2种,一个为砖块拼接的图层,另一个是物体层。我们这篇将给大家介绍2种图层的公有方法:
        代码如下: [plain]

        1. //返回图层尺寸的大小
        2. virtual const CCSize & getLayerSize (void)
        3. //设置图层尺寸的大小
        4. virtual void setLayerSize (const CCSize &var)
        5. //返回砖块尺寸的大小
        6. virtual const CCSize & getMapTileSize (void)
        7. //设置砖块尺寸的大小
        8. virtual void setMapTileSize (const CCSize &var)
        9. //返回砖块属性信息
        10. virtual CCTMXTilesetInfo * getTileSet (void)
        11. //设置砖块属性信息
        12. virtual void setTileSet (CCTMXTilesetInfo *var)
        13. //返回图层属性字典(包含了所有属性)
        14. virtual CCDictionary * getProperties (void)
        15. //设置图层属性
        16. virtual void setProperties (CCDictionary *var)
        17. //构造函数
        18. CCTMXLayer ()
        19. //析构函数
        20. virtual ~CCTMXLayer ()
        21. //初始化函数,参数为:砖块配置对象,图形配置对象,地图配置对象
        22. bool initWithTilesetInfo (CCTMXTilesetInfo *tilesetInfo, CCTMXLayerInfo *layerInfo, CCTMXMapInfo *mapInfo)
        23. //释放图层中砖块的拼接信息
        24. void releaseMap ()
        25. //返回指定位置的砖块对象
        26. CCSprite * tileAt (const CCPoint &tileCoordinate)
        27. //返回指定位置砖块对象的ID
        28. unsigned int tileGIDAt (const CCPoint &tileCoordinate)
        29. //返回指定位置砖块对象的ID
        30. unsigned int tileGIDAt (const CCPoint &tileCoordinate, ccTMXTileFlags *flags)
        31. //设置指定位置砖块对象的ID
        32. void setTileGID (unsigned int gid, const CCPoint &tileCoordinate)
        33. //设置指定位置砖块对象的ID
        34. void setTileGID (unsigned int gid, const CCPoint &tileCoordinate, ccTMXTileFlags flags)
        35. //移除指定位置砖块对象
        36. void removeTileAt (const CCPoint &tileCoordinate)
        37. //返回指定坐标的地图位置
        38. CCPoint positionAt (const CCPoint &tileCoordinate)
        39. //返回指定属性数值
        40. CCString * propertyNamed (const char *propertyName)
        41. //创建图层中的砖块
        42. void setupTiles ()
        43. //得到图层的名字
        44. const char * getLayerName ()
        45. //设置图层的名字
        46. void setLayerName (const char *layerName)
  2. TMXTiledMap *openMap = TMXTiledMap::create("hush_map.tmx");
    openMap->setAnchorPoint(Point(0,0));
    //openMap->getMapSize().width瓦片地图横向有多少个瓦片
    //openMap->getTileSize().width每一个瓦片的宽度
    log("%f", openMap->getTileSize().width*openMap->getMapSize().width);
    // openMap->setPosition(Point(0,0));
    //根据对象名字找对象
    /*TMXObjectGroup *objects = openMap->getObjectGroup("Objects");
    auto player = objects->getObject("player");
    int player_x = player["x"].asInt();
    int player_y = player["y"].asInt();
    auto role = Sprite::create("monster.png");
    role->setPosition(Point(player_x,player_y));
    role->setScale(0.01);
    auto role_action = ScaleTo::create(2.0f,1);
    role->runAction(role_action);
    this->addChild(role,5);*/

    //openMap->setPosition(Point(visibleSize.width/2,visibleSize.height/2));

    //遍历地图中的对象
    //获取对象组
    TMXObjectGroup *objects = openMap->getObjectGroup("Objects");
    ValueVector objectsValue = objects->getObjects();
    float x, y, w, h;
    for each (auto object in objectsValue)
    {
    ValueMap valueMap = object.asValueMap();

    x = valueMap.at("x").asFloat();
    y = valueMap.at("y").asFloat();
    w= valueMap.at("width").asFloat();
    h = valueMap.at("height").asFloat();
    log("x=%f,y=%f,w=%f,h=%f",x,y,w,h);
    }

    this->addChild(openMap);

TiledMap使用笔记相关推荐

  1. c++ qt工作量和移动端相比_学习笔记 --- QT

    0.前序 别问,问就是选修... 那毕竟3dMax动画那边结课了,我怎么就不能再发一篇笔记(极其嚣张) QT其实会去好好学的,虽然最近为了选修结课又得恶补一波 不过以后给策划造编辑器是要用的,这篇笔记 ...

  2. Cocos2dx游戏开发笔记23:《奇怪的大冒险》源码学习,附下载

    懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 青岛) 以后有的忙了 抽空先来一发笔记 网上找了个demo:LOGO叫奇怪的大冒险(应该是@熊同学的 ...

  3. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  4. 【运维学习笔记】生命不息,搞事开始。。。

    001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...

  5. SSAN 关系抽取 论文笔记

    20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...

  6. pandas以前笔记

    # -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...

  7. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  8. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  9. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  10. 王道考研 计算机网络笔记 第六章:应用层

    本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...

最新文章

  1. SQL脚本--有关压缩数据库日志
  2. 腾讯 Robotics X 实验室首次「开箱」移动机器人,能走梅花桩,还能自平衡
  3. 面试官:了解雪崩效应吗?了解Hystrix吗?怎么解决雪崩效应吗?(大型社死现场,教你运筹帷幄之中)
  4. android+busybox+编译,Android版busybox编译
  5. grunt 前端开发环境搭建
  6. 文件操作(上传,下载,限制)
  7. 一张图全解析个性化邮件那么重要
  8. css transition改动透明,使用CSS transition和animation改变渐变状态的实现方法
  9. 一些sql语句的详细解释
  10. Java多线程知识点整理(Lock锁)
  11. C++类中静态变量和静态方法使用介绍!
  12. Atiitt 降低财政赤字风险性实施方案
  13. DSP入门应该懂得57个问题
  14. Python安装pygame教程
  15. 查询各科成绩前三名的记录
  16. Spark——Spark Project Tungsten深入解析
  17. QT5 QDateTime函数及时间格式说明
  18. 计算机云平台热门吗,哪个云电脑好用又便宜?国内的云游戏平台到底哪个好?
  19. shell 命令笔记(Linux系统常见命令和Git使用,正在更新中)
  20. 软链接解决存储空间不足

热门文章

  1. The Biggest Water Problem【牛客网】
  2. 软件工程实验二Visio的使用
  3. 移动互联软件技术与实践demo
  4. InnoDB存储引擎体系架构
  5. mybatisPlus代码自动生成
  6. Delphi2010新手学习(1)
  7. dynamips模拟器的安装
  8. php留言系统源码,XYCMS php留言板 v8.0
  9. vc_redist 各版本下载地址
  10. 各个版本Word转Pdf时出现有关PDFMaker加载项崩溃或错误的解决方法