Tiled地图编辑器支持普通视角地图和45度角地图, 它生成的地图数据文件cocos2d-x完美的支持,Tiled地图编辑器是一个以普通使用为目标地图编辑器,它使用简单而且能够轻松地在不同的游戏引擎中使用,其特性有:

1、使用基于XML编码形的地图数据文件使用能够在不同游戏引擎中通用

2、支持普通、45度两种视角

3、对象的放置位置能够精确到像素

4、支持图素、层次和对象等通用概念

5、自己主动又一次加载图素集

6、能够重置图素的大不和偏移

7、支持图章刷和填充等高效工具

8、支持以通用的格式输入输出来打开和存储文件

開始Tiled地图编辑器编辑地图

一、首先准备地图素材文件放至projectResources下,下载安装tiled-0.9.1-win32-setup.exe

地址:http://www.mapeditor.org/

二、启动Tiled,选择“文件-》新地图”,来新建地图project,弹出例如以下对话框设置地图的大小和图块大小和地图视角方向

三、选择“地图-》新图块”导入图素文件,弹出例如以下对话框设置图块的大小、边距、偏移量及图块名称、源路径

四、图块创建成功,右側显示图层名称及图块窗体中的图块,将图层名改动一下,点击工具栏上图章刷,点击一图块開始画地图

五、在图层窗体加入对象层并重命名,并在对象层加入对象,选中新建的对象层,点击工具栏上“插入矩形”在地图上画一个矩形,大小无关紧要,我们主要用来在地图

获取该x,y坐标,以在此放至精灵,右键刚刚加入矩形,选择对象属性,给它命个名称,然后点击确定。

六、点击保存地图命名*.tmx至Resources

七、编敲代码代码:

CCTMXTiledMap瓦片地图集类是cocos2d-x中支持Tiled地图编码数据文件形式的类,用于解析地图集的数据文件。開始使用地图,增加代码:

CCTMXTiledMap *pTMXTiledMap = CCTMXTiledMap::create("map.tmx");pTMXTiledMap->setScale(0.8f);pTMXTiledMap->setAnchorPoint( ccp(0.5f, 0.5f) );pTMXTiledMap->setPosition(ccp(visibleSize.width/2 , visibleSize.height/2-300));this->addChild(pTMXTiledMap);

执行结果:

八、Cocos2d-x 操作Tiled地图经常用法

显示Tiled地图

CCTMXTiledMap *map = CCTMXTiledMap::create("map3.tmx");map->setAnchorPoint( ccp(0.5f, 0.5f) );map->setPosition(ccp(visibleSize.width/2, visibleSize.height/2));this->addChild(map);

获取地图像素大小, width等于地图宽度块数*每块宽度,height 等于地图高度块数*每块高度

   CCSize CC_UNUSED s = map->getContentSize();CCLOG("ContentSize: %f, %f", s.width,s.height);

获取地图层

   CCTMXLayer *layer = map->layerNamed("layer1");//參数:地图层名称CCSize m = layer->getLayerSize();//地图大小CCLOG("LayerSize: %f, %f", m.width,m.height);

获取对象层

CCTMXObjectGroup *object = map->objectGroupNamed("object1");//參数:对象层名称

获取对象

CCDictionary *sprite_object = object->objectNamed("sprite1");//參数:对象名称

获取对象坐标

   float x = ((CCString*)sprite_object->objectForKey("x"))->floatValue();float y = ((CCString*)sprite_object->objectForKey("y"))->floatValue();

在坐标处增加精灵

  CCSprite *sprite = CCSprite::create("sprite.png");sprite->setScale(0.5f);sprite->setAnchorPoint(ccp(0.0f, 0.0f));sprite->setPosition(ccp(x, y));this->addChild(sprite);

当有多个地图层时,遍历地图层

 CCArray* pChildrenArray = map->getChildren();CCSpriteBatchNode* child = NULL;CCObject* pObject = NULL;CCARRAY_FOREACH(pChildrenArray, pObject){child = (CCSpriteBatchNode*)pObject;if(!child)break;child->getTexture()->setAntiAliasTexParameters();}

当有对象层有多个对象时,遍历全部对象

 CCArray *obs = object->getObjects();CCDictionary *dict=NULL;CCObject *ob = NULL;CCARRAY_FOREACH(obs, ob){dict = (CCDictionary *)ob;if (!dict)break;int y = ((CCString*)dict->objectForKey("y"))->floatValue();int x = ((CCString*)dict->objectForKey("x"))->floatValue();int w = ((CCString*)dict->objectForKey("width"))->floatValue();int h = ((CCString*)dict->objectForKey("height"))->floatValue();CCLOG("sprite x: %d, y: %d, w: %d, h: %d", x, y, w, h);}

最后结果图:

普通视角获取地图层四角图素

CCTMXLayer *layer = map->layerNamed("layer1") ;CCSize s = layer->getLayerSize();CCSprite* sprite;sprite = layer->tileAt(ccp(0,0));sprite->setScale(2);sprite = layer->tileAt(ccp(s.width-1,0));sprite->setScale(2);sprite = layer->tileAt(ccp(0,s.height-1));sprite->setScale(2);sprite = layer->tileAt(ccp(s.width-1,s.height-1));sprite->setScale(2);

将精灵作为了节点增加地图中

m_tamara = CCSprite::create("nan.png");map->addChild(m_tamara, map->getChildren()->count() );//将精灵作为子节点增加

改动精灵与地图遮挡物关系

//改动z轴的值并排序CCPoint p = m_tamara->getPosition();p = CC_POINT_POINTS_TO_PIXELS(p);CCNode *map = getChildByTag(kTagTileMap);int newZ = 4 - (p.y / 48);newZ = max(newZ,0);map->reorderChild(m_tamara, newZ); 

Cocos2d-x Tiled地图编辑器(一)基本使用相关推荐

  1. Tiled有java版本吗_【Cocos2d-X开发学习笔记】开发工具之Tiled地图编辑器的使用

    Cocos2D-X支持Tiled地图编辑器生成的地图数据文件.Tiled地图编辑器是一个以广泛使用为目标的地图编辑html 器,它使用简单而且能够轻松地在不一样的引擎中使用.目前最新版本使用Qt框架进 ...

  2. Tiled地图编辑器(一)实现坦克大战

    Tiled地图编辑器功能强大.灵活,我认为能实现<坦克大战>游戏的的地图需求. 1.Tiled地图编辑器 其思想为:一个地图由多个层次的图层构成,图层的种类分为三种:块层.对象层和图像层. ...

  3. html5地图编辑器,Tiled地图编辑器 Tiled Map Editor 的使用(一)基础功能+地形功能...

    看了很久关于 Tiled Map Editor 相关资料,但是网上的东西相对太少了,多日整理之后重新写一份吧 一方面是对自己学习的总结 另外也是和想入门的人做个分享. 首先是官网下载地址 http:/ ...

  4. Tiled地图编辑器 Tiled Map Editor 的使用(一)基础功能+地形功能

    看了很久关于 Tiled Map Editor 相关资料,但是网上的东西相对太少了,多日整理之后重新写一份吧 一方面是对自己学习的总结 另外也是和想入门的人做个分享. 首先是官网下载地址   http ...

  5. Tiled地图编辑器 Tiled Map Editor 的使用(二)动画效果

    这篇比较简单,前面已经将大部分功能介绍过了,这次补全前面提到的动画功能,其他进阶功能逐步再写. 前一篇教程传送门  http://blog.csdn.net/firseve/article/detai ...

  6. 【日常点滴016】python游戏库arcade结合Tiled map editor地图编辑器和Pymunk物理引擎制作游戏过程记录,并最终打包为exe文件

    独此一家,建议收藏 前言 一.创建一个空白窗口 step001.py代码示例 二.创建很多全局能用的常量 step002.py代码示例 三.创建实例变量即代表各种精灵等的变量 step003.py代码 ...

  7. COCOS-Tiled地图编辑器

    一.tiled简介 瓦片地图是cocos游戏里重要的一个组成部分,tiled地图编辑器便是设计瓦片地图的有效工具,下载地址(点击打开链接),其工作界面如下图: 二.新建地图 点击文件->新文件, ...

  8. 让Tiled成为一个强有力的45度菱形Staggered打点器(地图编辑器)

    让Tiled成为一个强有力的45度菱形Staggered打点器(地图编辑器) 分类: cocos2dx2013-08-05 23:09 1601人阅读 评论(1) 收藏 举报 Tiled的确强大,处理 ...

  9. Java敌人跟地图的碰撞_(译)加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分...

    免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作 ...

最新文章

  1. Swift - 使用SwiftHTTP通过HTTPS进行网络请求,及证书的使用
  2. python用于什么-python主要应用在哪些领域?
  3. yum配置代理,通过CCProxy有线网络安装软件
  4. select使用css居右对齐
  5. [Android] QPST,解BL锁,刷Recovery,备份系统,root,刷框架.
  6. 一本介绍Javascript 的很好的书【基础期间全局了解】
  7. vue笔记(一)基本使用、数据检测
  8. CTU 2017 J - Punching Power (二分图匹配)
  9. css empty_何时使用:empty和:blank CSS伪选择器
  10. Git 查看并修改 name 和 email
  11. mfc打开指定路径下指定类型文件_Windows 网络编程:文件操作
  12. MakeDAO 推出新漏洞奖励计划,最高赏金1000万美元
  13. java lambda_Java 8 Lambda 表达式 ( 中 )- 外部参数
  14. Objective-C中ORM的运用:实体对象和字典的相互自动转换
  15. 用ImDisk在Windows 10中创建内存虚拟盘
  16. 笔记本怎样做无线打印服务器,自己的笔记本怎么连打印机_笔记本怎样无线连接打印机...
  17. RadioButton下划线效果的使用
  18. python adb读取手机中短信_python+adb实现自动化获取手机信息
  19. 【第十篇】商城系统-性能测试
  20. HBuilderX 安装教程

热门文章

  1. 人工智能再次参加高考:和作家比写作文,AI能打多少分?
  2. javascript中this值的引用
  3. javascript实现java的StringBuffer功能
  4. 网易漫画Swift混编实践
  5. C语言中的static 具体分析
  6. php+求二分查找递归算法,PHP二分查找(递归和循环)
  7. 《深度学习》李宏毅 -- task4深度学习介绍和反向传播机制
  8. 选择排序(Select Sort)
  9. 部署大数据有哪些优势
  10. 依托大数据的财务管理新路径