Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

好吧,我真心完全搞不懂,我现在只不过是写了3个类而已,怎么就已经到第八篇了?我感觉我说话已经够简单明了毫不唠叨了,真是奇怪。(小若:我噗,噗噗!)

好吧,既然现在主角已经能出现并且进行操作了,那,也是时候让怪物出场了。

让怪物出现太简单了,不就是写一个Monster类,然后创建刚体,让它可以和主角碰撞,然后让主角扣血或者加血么?

没错,确实就是这样的,但是,这不是重点,我想介绍的是,利用关卡编辑器来创建所有要出场的怪物,这才有意思~

笨木头花心贡献,啥?花心?不呢,是用心~

转载请注明,原文地址: http://www.benmutou.com/blog/archives/926

文章来源:笨木头与游戏开发

神奇的TiledMap

不知道大家有没有看过我那《跑跑跑》的游戏实例教程(好吧,好像传得蛮广的,但是有不少bug),《跑跑跑》里面也有介绍到TiledMap,应该说,它主要就是介绍TiledMap来制作地图的。

其实TiledMap顾名思义就是格子地图,它是地图编辑器,但实际上,它是关卡编辑器,因为地图某种意义上来说,就是关卡。

在写《别救我》的时候,我一直在纠结,是自己写关卡编辑器呢,还是手动配置关卡呢?

然后,某天早上,我坐在花园上晒太阳(很逍遥),突然就想起了——TiledMap。

那么,我们来看看怎么用TiledMap给这游戏配置关卡数据吧。

TiledMap新手补充资料

好吧,我写的教程基本上都是入门级的,所以照顾一下不了解TiledMap的朋友。

TiledMap的官方地址是:http://www.mapeditor.org/

下载安装就可以了,没有什么特别需要注意的。

关卡背景参考

首先要弄清楚,《别救我》这游戏是没有地图的,好吧,它有一张循环滚动的地图,但是它不需要和玩家交互,它只管不断地滚就是了。

所以,我们在使用TiledMap配置关卡的时候,似乎有点纠结,因为,没有地图,没有参照物,我们要凭空去设置怪物的位置。(小若:怪物不是有图片吗?谁说没有参照物?)

不,我们的怪物在配置关卡的时候也不能有图片,因为怪物不是一下子就全部出现,它们不是地图。

那么,我们就要做一点点特别的处理了。

我们先运行游戏,然后截图,如图:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

这张游戏截图就是我们的参照物,要怎么使用呢?

打开TiledMap,新建一个地图文件,让它的规格为480X800:,如图:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

好,习惯性地保存一下,命名为“tg1.tmx”

然后,把刚刚的游戏截图拖动到TiledMap编辑器右下方的图块窗口,如图:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

最后一步,选择整份图块,然后在编辑器的地图区域点击一下,把图块添加到地图区域中,正好覆盖整个地图,如图:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

OK,这就是我们的参照物了,这仅仅是用于编辑关卡,等真正到游戏中的时候,就不需要它了。

开始配置怪物

为了讲解方便,我只创建2种类型的怪物,一种是加血的,一种是扣血的。

相应的,图片资源也是2张,下载地址:

http://yunpan.cn/QNCpzpvRyQYqe 访问密码 5d97

这是用TexturePackage打包好的图片,关于这个软件的用法,就不在这里介绍了。

OK,图片下载好之后,保存到Resources目录下,然后把monster.png图片拖动到TiledMap编辑器的图块窗口,属性配置就按下图的方式配吧~随便了(小若:什么叫做随便啊!):



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

然后,就在地图区域随便填吧,根据你的喜好,比如我填的:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

我的艺术细胞比较发达,大家不用自卑,多练习练习就好了,嗯。(小若:你的艺术细胞是反着长的吧?)

好了,刚刚我们所做的一切,在游戏运行过程中都是不需要的,都是要删掉的。(小若:你是来耍我们的吧!)

创建怪物属性层

OK,接下来才是重点,我们要创建一个新的地图图层(是图层,不是新的地图文件)。

在TiledMap编辑器的右边,有个图层窗口,在那点击右键,然后添加对象层:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

名字,就叫做monster吧,随便了(小若:能不能别这么随意啊,你这是在写教程啊喂):



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

添加怪物属性

好了,接下来才是重点(小若:前面说过了,说过了好吧)

注意一下,确定你现在已经选中了monster对象层(单击一下就可以了)。

编辑器的上面有一堆工具,我们要选择矩形工具,如图:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

然后在地图区域画一个矩形,别太大:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

然后再选回选择工具:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

现在,双击刚刚画的那个矩形,出现属性对话框,然后按照下图填写:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

名称是为了方便在程序中获取这个对象,而对象的属性,就是用来作为怪物的配置用的。

到了这里,我想,大家都知道要怎么做了(小若:嗯,不知道)

不知道的给我滚粗好吗?都第八集了,还不自觉一点。

好,现在按照刚刚创建矩形的方式,再创建一个矩形,这次属性如下:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

名称还是monster,id改为2,showTime随大家喜欢,showTime就是怪物隔多少秒之后再出现。

然后按照大家之前制作的怪物,一个个矩形去填好,比如我的:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

注意一下,要让矩形的左上角对准怪物的中心点(尽量就可以,不用太准确)。

好,保存一下。

然后,将编辑好的tg1.tmx文件复制到游戏的Resources目录下,然后,用文本编辑器打开它(建议用UltraEdit或者其他,不要用记事本),打开之后是这样的:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

很乱,没关系,找到图中标记的三个地方,把它们删掉,它就是我们作为参照物的背景层。

最后变成这样:



Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

剩下一小块。

好了,这就是完整的关卡配置过程,虽然最后还是要手动删一点东西,不过,这比手动配置要快多了。

如果大家没有足够的时间去编写针对自己游戏的关卡编辑器,我想,TiledMap是一个比较好的选择。

下一篇,我们开始要使用这个关卡配置文件去加载怪物了~

Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

时间: 2024-12-21 08:50:56

Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器的相关文章

Cocos2d-x3.0游戏实例之《别救我》第三篇——循环滚动背景

好,这篇我们来讲解无限循环滚动背景,这个知识已经被讲到烂了,我以前的文章也介绍过,所以就不那么详细地说明了. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址:http://www.benmutou.com/blog/archives/823 文章来源:笨木头与游戏开发 为什么是循环滚动背景? 用循环滚动背景,其实是因为我想偷懒,因为这样我只需要准备一张图片就可以了. 我们最终要创建这样的背景,如图: 背景是在滚动的,大家有没有看到?(小若:看你妹,这是jpg,不是gif) 大家是

Cocos2d-x3.0游戏实例之《别救我》第二篇——创建物理世界

这篇我要给大家介绍两个知识点: 1. 创建游戏物理世界 2. 没了(小若:我噗) 害怕了?不用担心,这太简单了~! 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址:http://www.benmutou.com/blog/archives/804 文章来源:笨木头与游戏开发 3.0新亮点,史上最简单的物理引擎 在Cocos2d-x3.0里使用物理引擎,会很有快感,因为很多繁琐的东西它都帮我们封装好了. 那么,我要开始创建游戏的关卡场景了,大家跟紧了. 我们给关卡场景命名为Toll

Cocos2d-x3.0游戏实例之《别救我》第六篇——从代码中获取UI控件

这篇的内容很简单,获取UI控件,然后使用它. 还记得我们在UI编辑器中给三个按钮分别命名了吧? 现在要用上了. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www.benmutou.com/blog/archives/918 文章来源:笨木头与游戏开发 根据名字查找控件 首先给TollgateScene再include一些头文件,不然等会编译又报错了: #include "editor-support/cocostudio/CCSGUIReader.h&quo

Cocos2d-x3.0游戏实例之《别救我》第九篇——从tmx文件中加载关卡怪物

上一篇我们已经制作好tg1.tmx文件了,现在就要使用它了. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www.benmutou.com/blog/archives/944 文章来源:笨木头与游戏开发 很抱歉,我们又要新建2个类了,我已经尽力少新建类了,毕竟是教程,类越多越容易混乱. 我们要新建一个Monster类,以及一个MonsterLayer类,专门添加Monster对象. Monster类 来看看Monster.h文件: #ifndef Monste

Cocos2d-x3.0游戏实例之《别救我》第一篇——前言

我们能学到什么? 这是一个很简单的游戏,但是用到的东西比较多(对新手而言),起码,对于一个实例来说,它涉及的确实有点多. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址:http://www.benmutou.com/blog/archives/797 文章来源:笨木头与游戏开发 通过这个游戏实例,可爱的你(小若:那不可爱的人呢?),可以学到以下知识点: 1. Cocos2d-x3.0物理引擎的简单使用 2. 读取Json文件作为怪物和物品配置 3. 利用Tiled地图实现可视化

Cocos2d-x3.0游戏实例之《别救我》第十篇(完结)——用Json配置各类型怪物数据

现在我们有2种类型的怪物,而且创建的时候是写死在代码里的,这是要作死的节奏~ 所以,必须可配置,不然会累死人的. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www.benmutou.com/blog/archives/949  文章来源:笨木头与游戏开发 Json文件 什么是Json文件?说白了,它就是一个文本文档,只不过它的内容是按照一定的规则填写的. 于是,我们就可以按照那个规则去读取这份文档. 这,就是配置文件产生的缘由(才怪). (小若:才怪是什么意

Cocos2d-x3.0游戏实例之《别救我》第五篇——使用Cocostudio UI编辑器创建操作界面

这一篇内容其实很简单,已经对Cocostudio比较熟悉的朋友就可以随便扫一下了~(小若:熟悉Cocostudio的人谁还有空看你的基础教程呢) 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址:http://www.benmutou.com/blog/archives/892 文章来源:笨木头与游戏开发 下载Cocostudio 首先,去官网下载最新版的Cocostudio:http://www.cocos2d-x.org/download 我这篇教程使用的版本是V1.3.0.1

cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第三步---编辑器(2)---更方便很多其它操作更像编辑器

/* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦.他说:随便写,第一别全然照搬代码:第二能够说明是学习笔记---好人 **3.这里用cocos2d-x 3.0版本号重写,非常多地方不同.可是从重写过程中也非常好的学习了cocos2d-x */ ***每一步相应的全部代码以及用到的资源都会打包在最后给出 ***为避免代码过多,每一步的代码都做了标记--一看就晓得是第几步实现的避免出错改不回去(难不成还用

cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第四步---编辑器(3)--坐标保存&amp;加载文件操作

/* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦,他说:随便写,第一别完全照搬代码:第二可以说明是学习笔记---好人 **3.这里用cocos2d-x 3.0版本重写,很多地方不同,但是从重写过程中也很好的学习了cocos2d-x */ ***每一步对应的所有代码以及用到的资源都会打包在最后给出 ***为避免代码过多,每一步的代码都做了标记--一看就晓得是第几步实现的避免出错改不回去(难不成还用Git