Cocos2D-X支持Tiled地图编辑器生成的地图数据文件。Tiled地图编辑器是一个以普遍使用为目标的地图编辑
器,它使用简单并且可以轻松地在不同的引擎中使用。目前最新版本使用Qt框架进行开发,之前也有Java版本,目的
就是可以使编辑器跨平台。这点在Cocos2D-X的开发中也比较重要。因为Cocos2D-X的跨平台特性,可能导致用户所
使用的操作系统各不相同。为了让大家都可以看到地图的效果,编辑器的“跨平台”也是必要的。
一、Tiled地图编辑器
Tiled地图编辑器的特性如下:
<1> 使用基于XML编码形式的地图数据文件使其可以在不同的游戏引擎中通用。
<2> 支持普通和45度角两种视角。
<3> 对象的放置可以精确到像素。
<4> 支持撤销/重做和复制/粘贴的操作。
<5>支持图素、层次和对象等通用的概念。
<6>自动重新载入图素集。
<7> 可以重置图素的大小和偏移。
<8> 支持图章刷和填充等高效工具。
<9> 支持以通用的格式输入输出来打开和存储文件。
注意:本教程使用的是最新版Tiled 0.9.1 for Windows。
Tiled地图编辑器的下载地址为http://www.mapeditor.org/download.html,下载后直接双击运行安装,安装后运行效果图
如下所示。

二、使用编辑器编辑地图
Tiled地图编辑器并不是专门为Cocos2D-X设计的编辑器,而是广泛适应各种引擎。在Cocos2D-X中使用Tiled地图
编辑器编辑地图,首先要在资源文件中加入图素文件和地图数据文件,然后使用Cocos2D-X中的瓦片地图类处理。
下面就让我们一起来学习如何使用Tield地图编辑器编辑地图。
<1> 选择“文件->新文件”,新建地图工程。

<2> 在弹出的对话框中设置地图的高度和宽度,图块的大小以及地图的方向。

<3> 选择“地图->新图块”导入图素文件。

<4> 在弹出的对话框中设置图块的大小、边距和偏移量等等。

<5> 选择完成图块后,右下角的部分就显示了目前的图块,选择相应的图块便可以填充地图了。

<6> 工具栏中提供了不同工具填充,包括图章刷、填充、橡皮擦和选择矩形区域等。可以使用图章刷为每个格填充图
案,填充是批量地填充图素,橡皮擦可以擦掉之前的填充图案。

<7> 屏幕的右上角为图层编辑部分。

通过图层编辑部分可以选择我们需要编辑的图层,并且可以排除其他层的干扰。
下图是图层编辑部分的按键、包括新建层、改变层的顺序、复制图层以及删除图层等按钮。

另外,选择菜单中的图层部分也可以帮助编辑修改图层。

<8> 地图的相关参数在地图菜单中修改,如下图所示。

<9> 通过视图菜单修改地图在编辑器中的缩放比例。

<10> 最后通过另存为把TMX文件保存在指定的位置。

三、添加对象层
1、Tiled地图编辑器有一个功能,就是可以给地图添加对象层。单击新建层按钮便可以选择添加对象层。

2、对象层中摆放对象的位置可以精确到像素,可以在对象层中加入图素和图形等。
下图是精灵层中可以使用的按钮。

3、选中对象右击可设置对象的属性。

4、修改对象的属性。

精灵层其实就是没有图素位置限制的地图层。精灵层一般放置大图素(起到修饰作用的无实际意义的图素,大小
不受地图图素大小的限制)和机关(在游戏中起某些功能性作用,如传送门等,大小不受地图图素大小限制)。对象
层和地图层结合叠加就组成了整个地图。
四、Tiled地图编辑器数据文件
Tiled地图编辑器生成的TMX数据文件类似于XML文件,使用文本编辑器可打开。
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="40" height="40" tilewidth="32" tileheight="32">
<tileset firstgid="1" source="desert.tsx"/>
<layer name="Ground" width="40" height="40">
<data encoding="base64" compression="zlib">
eJztmNkKwjAQRaN9cAPrAq5Yq3Xf6v9/nSM2VIbQJjEZR+nDwQZScrwztoORECLySBcIgZ7nc2y4KfyWDLx+Jb9nViNgDEwY+KioAXUgQN4+zpoCMwPmQAtoAx2CLFbA2oDEo9+hwG8DnIDtF/2K8ks086Tw2zH0uyMv7HcRr/6/EvvhnsPrsrxwX7rwU/0ODig/eV3mh3N1ld8eraWPaX6+64s9McesfrqcHfg1MpoifxcVEWjukyw+9AtFPl/I71pER3Of6j4bv7HI54s+MChhqLlPdZ/P3qMmFuo5h5NnTOhjM5tReN2yT51n5/v7J3F0vi46fk+ne7aX0i9l6If7mpufTX3f5wsqv9TAD2fJLT9VrTn7UeZnM5tR+v0LMQOHXwFnxe2/warGFRWf8QDjOLfP
</data>
</layer>
</map>
其中存储了地图的基本信息,以及层次的信息。层次的信息使用base64方式编码,使用gzip方式压缩。Cocos2D-X
引擎中,提供了解码和解压缩的方式。在定义Cocos2D-X中的瓦片地图集时,传入数据的地址即可。
关于如何让TMX格式的地图在屏幕中显示出来请参考文章:
《【Cocos2d-X开发学习笔记】第25期:游戏背景之瓦片地图集类(CCTMXTiledMap)的使用》
分享到:
相关推荐
资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...
《Tiled地图编辑器与Cocos2d-x的深度融合:打造高效手机游戏开发》 在手机游戏开发领域,选择合适的工具和技术栈至关重要。Tiled地图编辑器和Cocos2d-x框架的组合,为开发者提供了强大的游戏场景构建和运行环境。...
Cocos2d-x框架除了Windows平台外,还支持iOS、Android、Mac OS X、Web等平台,初学者在掌握了Windows平台的开发后,可以进一步学习如何使用Cocos2d-x跨平台开发,实现一个游戏在多个平台上运行。 在学习过程中,...
《Cocos2d-x 3.x游戏开发实战》是一本深度探讨Cocos2d-x 3.x框架的游戏开发书籍,适合对游戏编程有兴趣的开发者学习。Cocos2d-x 是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多平台的...
3. Cocos2d-JS开发:这里强调的是使用Cocos2d-x框架结合JavaScript语言进行开发的过程。由于Cocos2d-x支持多种编程语言(包括C++、JavaScript和Lua),Cocos2d-JS意味着开发者可以采用JavaScript来构建游戏项目。 4...
在“Cocos2D-X开发学习笔记-游戏数据存储项目实例”中,你可能会学习到如何结合上述技术,创建一个实际的游戏数据存储系统。通过阅读教程和分析提供的项目文件"MyDataSave01",你将深入理解如何在实践中应用这些知识...
而"开发自己的编辑器"这一主题,则是关于如何利用cocos2d-x构建自定义的游戏编辑工具,以提升开发效率和个性化需求。 首先,我们需要理解一个游戏编辑器的作用。编辑器是用于创建、编辑和管理游戏资源的工具,包括...
《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...
《使用cocos2d-x-2.0-2.0.4开发的简单跨平台益智类魔塔小游戏》...通过学习和分析这个项目,开发者不仅可以掌握cocos2d-x的基本用法,还能了解到益智类游戏的设计思路和实现技巧,为自己的游戏开发之路打下坚实的基础。
在压缩包文件"jyinkailej-Flash2Cocos2d-x-8c0deff"中,可能包含了Flash2Cocos2d-x工具的源码、文档、示例项目和其他相关资源,供开发者学习和使用。这些资源可以帮助开发者深入理解如何使用该工具,并进行实际的...
Cocos2D-X的基础动作是游戏开发中的重要工具,它们不仅包括了基本的属性变换,还支持自定义和组合,提供了极大的灵活性和创造力。通过熟练掌握这些动作的使用,开发者可以构建出丰富多彩的游戏世界。在实际开发中,...
cocos2d-x 是一个开源的游戏开发框架,使用 C++ 语言编写,支持多平台发布,包括 iOS、Android、Windows、macOS、Linux 和 Web。cocos2d-x v3.16 是该框架的一个版本号,本文档主要介绍了该版本的安装流程以及环境...
总的来说,Cocos2d-x 3.1是游戏开发者学习2D游戏开发的一个重要参考点,虽然它已经不是最新的版本,但其核心概念和机制在后续版本中仍然保持一致,是理解整个Cocos2d-x框架的基础。解压并研究“cocos2d-x-3.1”中的...
本学习笔记将深入探讨如何在Cocos2D-X中处理触屏事件,让游戏能够响应用户的触摸操作。 首先,我们要了解Cocos2D-X中的触摸事件处理机制。在Cocos2D-X中,触屏事件主要通过`Touch`类和`TouchEvent`类来实现。`Touch...
这篇学习笔记将深入探讨如何在Cocos2D-X中实现按键事件的处理。 首先,Cocos2D-X使用了事件系统来处理各种用户输入,包括键盘事件。在Cocos2D-X中,你可以通过监听`EventKeyboard`来捕获键盘上的按键按下和释放动作...
《Cocos2d-x实战:C++卷(2版)源代码》这本书是关于使用Cocos2d-x游戏引擎进行游戏开发的专业指南。Cocos2d-x是一个开源的、跨平台的游戏开发框架,广泛应用于iOS、Android、Windows等多个操作系统。本书以C++语言...
这份API文档不仅提供了关于Cocos2d-x的基本信息,还深入到具体的技术细节,对于学习和使用cocos2d-x开发游戏的开发者来说,是非常宝贵的参考资料。通过这份文档,开发者可以了解如何利用cocos2d-x的API构建游戏场景...
《cocos2d-x学习笔记》 在学习cocos2d-x时,了解其核心组件和工作流程至关重要。AppDelegate是cocos2d-x框架中的一个关键类,它扮演着应用程序入口点的角色,处理应用程序的生命周期事件。让我们深入探讨...
总的来说,cocos2d-x 3.8版本是一个强大的游戏开发工具,虽然不如最新的版本功能全面,但其稳定性和兼容性仍然值得信赖。对于想要深入理解游戏引擎工作原理或者研究历史版本的开发者来说,这个“cocos2d-x-3.8.zip”...
Cocos2d-x是一个广泛使用的开源游戏开发框架,它基于C++,同时支持Lua和JavaScript等多种脚本语言,为开发者提供了高效、跨平台的游戏开发解决方案。在3.13.1版本中,Cocos2d-x对Spine动画引擎的集成进行了更新,这...