Quick-Cocos2d-x初学者游戏教程 (七) ----------------------- 制做地图

Quick-Cocos2d-x初学者游戏教程7

回顾下上章的内容,上一章咱们在背景层上加了层滚动的 “TMX背景”,但只是提到了 TMX 文件的加载,草草几笔就被带过了,因此本着尽职负责(啰里八嗦)的态度,本章咱们仍是先来了解下 TMX 地图文件的制做,同时处理背景层上滚动的元素(奖励品和障碍物)。git

好的,那么如今啰嗦开始!!!github

TMX 地图文件的制做

其实吧,TMX 地图的制做是很是简单的,在本人以前的教程中也讲了好屡次,都说烦了。本想直接跳过的,可是仔细想一下,若是我如今不讲,回头又会被吐槽说教程跳太快,全部仍是乖乖的一一说下吧,就算凑凑篇幅,会用 TiledMap 编辑器的请绕行。编辑器

首先,请打开以前安装好的 TiledMap 编辑器,并新建一个文件。点击新建后,会跳出以下的对话框,咱们在这里设置 TMX 文件的基本属性。post

map1

地图方向值建立的地图的朝向,这里咱们选择正常就行,它将为咱们建立一副直角鸟瞰地图(90°地图)。
层格式是指层中的数据怎样存储,这里咱们也选择默认的。由于地图的数据通常都有比较大的冗余,因此利用zlib 能够获得很高的压缩比。
块大小是指每一个 tile 元件的大小,它须要根据提供的图块资源大小来肯定,建议图块大小为32 * 32的倍数。下图就是咱们的图块资源(本身PS的,累成狗,其实根据咱们游戏的特征,根本不须要这么多图块的,只是想表达下怎样作图块资源,因此就忍不住PS了一张,感兴趣的童鞋能够感觉下)。ui

ps

这里每一个图块的大小都为64 * 64,因此咱们把 TMX 的块大小也设为64 * 64,不要问我为何,由于我只能说这样好拼点。url

地图大小指横竖方向上图块的多少,也就是表示该新建的地图中有多少格64 * 64的 tile 元件。
因此这里咱们根据游戏的设定——须要一张长长的地图资源,设置地图大小为 300 * 10。设置好后,你会发如今地图大小属性栏下面,会输出最终的地图大小(19200 * 640)。设计

点击确认以后,一个空白的游戏地图就建立好了,以下图所示:3d

map2

由于地图太长,全部你能够经过右边的迷你地图面板来调节地图的显示大小(经过鼠标中键的先后滚动)和显示区域。如你建立的地图无上图中的网格,你能够点击菜单栏的 视图-》显示网格 将该功能开启,这样能够方便咱们地图的制做。对象

接下来在菜单栏中选择 地图-》新图块 来导入图块资源,而后会出现以下所示的对话框:教程

map3

咱们要作的就是点击浏览按钮,将以前准备好的图块文件载入到编辑器,其余属性能够不作修改。

再接着,就是个任性的过程了。在编辑器右下角的图块面板中选中相应的图块,而后把它拖动到渲染区拼一个本身想要的地图。例如:

map0

添加对象层

上章,咱们说好要用 TMX 文件来承载游戏的障碍物和奖励品的。若是直接以拼图的方式将这些物品做为图块拼入地图,这样不是不可行的,然而有个问题是,若是这些障碍物或奖励品要求是动态的啦?显然地,这就不可行了。因此如今问题又来了:咱们该拿它怎么办?

别急!我要告诉你,TiledMap 支持对象(Object)和对象组(ObjectGroups)功能,同时Quick 也支持,全部咱们能够在地图上建立一个对象层,用对象来标示每一个障碍物和奖励品的位置。

这里对象是为了开发者方便而设计的,它并不对应于某个地图图片,只是标明了某个位置,这样开发者能够经过相关 API 获取某个对象的位置,从而在相应的位置进行绘制。对象也是能够有名字的,这样能够经过相关 API 经过名字获得对象。它经常用于添加除背景之外的游戏元素(如道具、障碍物等)。

而对象组(objectgroup)顾名思义,它只是用来把多个对象包起来并进行分组的一个结构,当对象比较多时,利用它能够方便管理。

如下是 Cocos 中 TiledMap 的大体逻辑结构:
tmx1
更多细节内容可参考瓦片地图一文。(呵呵,其实也没那么详细啦!)

接下来回到主题,咱们仍是来为地图添加对象层吧。正以下图所示,咱们在编辑器右上角的图层面板中新建了一些不一样的对象层,而后在各对象层中依次添加了一些形状的对象,意图用这些对象来表示该位置上对应的障碍物或奖励品,也就是暂时用这些小方块小圆圈来代替具体的游戏实物。在程序中,咱们能够遍历指定对象层上的所有对象,而后再在这些对象的坐标处建立相应的障碍物或奖励品,这样不论是它们是静态的仍是动态的,均可以很方便的。这里形状和大小并没有太大关系,由于咱们在程序中只须要取对象的坐标值。

map4

在制做地图的过程当中,你能够勾选图层前面的选项来决定图层上的对象是否显示,这样能够避免其余图层对咱们产生的视觉干扰,有利于地图的制做。

如今咱们的地图就算拼好了,以后须要作的就是把它保存起来,并连同图块资源一块儿拷贝到项目的res/image目录下,用于游戏加载了。

这里要注意的是,.tmx文件与.png资源默认状况下须要放在同级目录下,如需修改,能够打开.tmx文件修改路径。 对象组(ObjectGroups)中的对象(Object)在TMX文件中以键值对的形式存在,所以咱们也能够直接在TMX文件中对它进行修改。

tmx

此时运行游戏,你就能够看到本身拼的地图在游戏中缓缓滚动了(PS:对象层的对象在游戏中是不可见的,因此看着效果不明显)。

资源我已放到Github仓库,你们能够下载下来跟着作作,相应的资源后续章节中咱们还会持续更新。

转载请注明出自:http://shannn.com/archives/411

相关文章
相关标签/搜索