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格式的地图在屏幕中显示出来请参考文章: