Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/musicvs/article/details/25368273
好吧。我真心全然搞不懂。我如今仅仅只是是写了3个类而已,怎么就已经到第八篇了?我感觉我说话已经够简单明了毫不唠叨了。真是奇怪。(小若:我噗。噗噗!
)
好吧,既然如今主角已经能出现而且进行操作了,那。也是时候让怪物出场了。
让怪物出现太简单了,不就是写一个Monster类,然后创建刚体。让它能够和主角碰撞。然后让主角扣血或者加血么?
没错。确实就是这种,可是。这不是重点,我想介绍的是,利用关卡编辑器来创建所有要出场的怪物,这才有意思~
笨木头花心贡献,啥?花心?不呢,是用心~
转载请注明,原文地址: http://www.benmutou.com/blog/archives/926
文章来源:笨木头与游戏开发
奇妙的TiledMap
不知道大家有没有看过我那《跑跑跑》的游戏实例教程(好吧,好像传得蛮广的,可是有不少bug)。《跑跑跑》里面也有介绍到TiledMap。应该说,它主要就是介绍TiledMap来制作地图的。
事实上TiledMap顾名思义就是格子地图,它是地图编辑器,但实际上,它是关卡编辑器,由于地图某种意义上来说,就是关卡。
在写《别救我》的时候,我一直在纠结。是自己写关卡编辑器呢,还是手动配置关卡呢?
然后,某天早上,我坐在花园上晒太阳(非常逍遥),突然就想起了——TiledMap。
那么,我们来看看怎么用TiledMap给这游戏配置关卡数据吧。
TiledMap新手补充资料
好吧,我写的教程基本上都是入门级的,所以照应一下不了解TiledMap的朋友。
TiledMap的官方地址是:http://www.mapeditor.org/
下载安装就能够了,没有什么特别须要注意的。
关卡背景參考
首先要弄清楚。《别救我》这游戏是没有地图的。好吧。它有一张循环滚动的地图,可是它不须要和玩家交互。它仅仅管不断地滚就是了。
所以,我们在使用TiledMap配置关卡的时候,似乎有点纠结,由于,没有地图。没有參照物,我们要凭空去设置怪物的位置。(小若:怪物不是有图片吗?谁说没有參照物?)
不。我们的怪物在配置关卡的时候也不能有图片,由于怪物不是一下子就所有出现。它们不是地图。
那么,我们就要做一点点特别的处理了。
我们先执行游戏。然后截图,如图:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.1.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
这张游戏截图就是我们的參照物,要怎么使用呢?
打开TiledMap,新建一个地图文件,让它的规格为480X800:,如图:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.2.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
好,习惯性地保存一下,命名为“tg1.tmx”
然后。把刚刚的游戏截图拖动到TiledMap编辑器右下方的图块窗体,如图:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.3.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
最后一步,选择整份图块。然后在编辑器的地图区域点击一下。把图块加入到地图区域中,正好覆盖整个地图。如图:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.4.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
OK。这就是我们的參照物了,这仅仅是用于编辑关卡。等真正到游戏中的时候,就不须要它了。
開始配置怪物
为了解说方便。我仅仅创建2种类型的怪物,一种是加血的,一种是扣血的。
对应的,图片资源也是2张。下载地址:
这是用TexturePackage打包好的图片。关于这个软件的使用方法。就不在这里介绍了。
OK,图片下载好之后。保存到Resources文件夹下。然后把monster.png图片拖动到TiledMap编辑器的图块窗体,属性配置就按下图的方式配吧~随便了(小若:什么叫做随便啊!):
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.5.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
然后,就在地图区域随便填吧,依据你的喜好,比方我填的:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.6.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
我的艺术细胞比較发达。大家不用自卑,多练习练习就好了。嗯。(小若:你的艺术细胞是反着长的吧?)
好了,刚刚我们所做的一切,在游戏执行过程中都是不须要的,都是要删掉的。(小若:你是来耍我们的吧!)
创建怪物属性层
OK,接下来才是重点。我们要创建一个新的地图图层(是图层。不是新的地图文件)。
在TiledMap编辑器的右边。有个图层窗体,在那点击右键。然后加入对象层:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.7.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
名字,就叫做monster吧,随便了(小若:能不能别这么任意啊,你这是在写教程啊喂):
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.8.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
加入怪物属性
好了,接下来才是重点(小若:前面说过了。说过了好吧)
注意一下,确定你如今已经选中了monster对象层(单击一下就能够了)。
编辑器的上面有一堆工具,我们要选择矩形工具,如图:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.9.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
然后在地图区域画一个矩形。别太大:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.10.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
然后再选回选择工具:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.11.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
如今,双击刚刚画的那个矩形。出现属性对话框。然后依照下图填写:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.12.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
名称是为了方便在程序中获取这个对象,而对象的属性。就是用来作为怪物的配置用的。
到了这里。我想,大家都知道要怎么做了(小若:嗯,不知道)
不知道的给我滚粗好吗?都第八集了。还不自觉一点。
好,如今依照刚刚创建矩形的方式,再创建一个矩形。这次属性例如以下:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.13.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
名称还是monster,id改为2。showTime随大家喜欢,showTime就是怪物隔多少秒之后再出现。
然后依照大家之前制作的怪物。一个个矩形去填好,比方我的:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.14.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
注意一下,要让矩形的左上角对准怪物的中心点(尽量就能够,不用太准确)。
好,保存一下。
然后,将编辑好的tg1.tmx文件拷贝到游戏的Resources文件夹下。然后,用文本编辑器打开它(建议用UltraEdit或者其它。不要用记事本),打开之后是这种:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.15.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
非常乱。没关系。找到图中标记的三个地方。把它们删掉,它就是我们作为參照物的背景层。
最后变成这样:
![](http://www.benmutou.com/blog/wp-content/uploads/2014/05/8.16.jpg)
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
剩下一小块。
好了,这就是完整的关卡配置过程,尽管最后还是要手动删一点东西,只是,这比手动配置要快多了。
假设大家没有足够的时间去编写针对自己游戏的关卡编辑器,我想。TiledMap是一个比較好的选择。
下一篇,我们開始要使用这个关卡配置文件去载入怪物了~
Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器的更多相关文章
- Cocos2d-x3.0游戏实例《不要救我》第十篇(结束)——使用Json配置数据类型的怪物
如今我们有2种类型的怪物,并且创建的时候是写死在代码里的,这是要作死的节奏~ 所以.必须可配置.不然会累死人的. ; i < size; ++i) { int id = root[i][&quo ...
- Cocos2d-x3.0游戏实例《不要救我》第一章——前言
我们可以学习? 这是一个非常easy游戏.但更多的东西用(对于初学者).至少,对于它的一个例子,有点多. 笨木头花心贡献.啥?花心?不呢.是用心~ 转载请注明,原文地址:http://www.benm ...
- Cocos2d-x3.0游戏实例《不要救我》三——背景滚动周期
好.让我们来解释一下这个无限循环滚动的背景.这方面的知识一直讲到烂.我以前的文章还介绍了.所以不是那么特别清楚. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址:http://www. ...
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第三步---编辑器(2)---更方便很多其它操作更像编辑器
/* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦.他说:随便写,第一别全然照搬代码:第二能够说 ...
- Cocos2d-x3.0游戏实例之《别救我》第六篇——从代码中获取UI控件
这篇的内容非常easy,获取UI控件,然后使用它. 还记得我们在UI编辑器中给三个button分别命名了吧? 如今要用上了. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http ...
- Cocos2d-x3.0游戏实例之《别救我》第二篇——创建物理世界
这篇我要给大家介绍两个知识点: 1. 创建游戏物理世界 2. 没了(小若:我噗) 害怕了?不用操心.这太简单了~! 笨木头花心贡献.啥?花心?不呢.是用心~ 转载请注明,原文地址:http://www ...
- Cocos2d-x3.0游戏实例之《别救我》第四篇——乱入的主角
好了,前面说了那么多废话,最终要进入正题了(等等,敢情前面你都是在耍我们么?) 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www.benmutou.com/blo ...
- Cocos2d-x3.0游戏实例之《别救我》第七篇——物理世界的碰撞检測
事实上我也非常吃惊-居然写到第七篇了,我估计也就是四篇的内容,感觉非常奇妙,我也不会非常唠叨什么吖); // 0001 ); // 0001 ); // 0001 这样我们才干监听到它们的碰 ...
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第二步---编辑器(1)--触摸加入点
/* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦,他说:随便写,第一别全然照搬代码:第二能够说 ...
随机推荐
- destoon二次开发基础指南
代码首先包含common.inc.php文件 在common.inc.php文件中,首先定义常量. define('IN_DESTOON', true); define('IN_ADMIN', def ...
- SQl查询数据库表名、表的列名、数据类型、主键
1.获取所有数据库名: 2.Select Name FROM Master..SysDatabases order by Name 3. 4.2.获取所有表名: 5. (1) ...
- Atitit避免出现空指针异常解决方案
Atitit避免出现空指针异常解决方案 1. Null的问题1 2. 强制区分一般引用vs 可空引用 vs 强制引用,或者说非空引用2 3. ?运算符(问号运算符) !感叹号运算符避免出现空指针异常, ...
- 11.static(转)
本文转自:http://blog.csdn.net/keyeagle/article/details/6708077 google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇 ...
- Unable to use slave's temporary directory /tmp - Can't create/write to file '/tmp/SQL_LOAD-' (Errcode: 17)
这个错误时在Mysql主从配置产生的,最后找到这个Mysql的一个bug http://bugs.mysql.com/bug.php?id=62055 bug的主要原因是:打开文件的函数中指定打开模式 ...
- c++ virtual 和 pure virtual的区别
参考资料: http://stackoverflow.com/questions/1306778/c-virtual-pure-virtual-explained 验证代码: #include < ...
- Linux虚拟机Centos 设置固定的静态IP
经过两天的研究(研究到深夜1点),百度了很多文章与加了几个linux的群,终于得到一种方式是可以正常设置静态IP且正常的ssh连接的方式. 第一种方式:NAT模式 参考文章 -- 虚拟机中的CentO ...
- 定时器(setTimeout/setInterval)调用带参函数失效解决方法
也许你曾碰到过这样的问题,不管是setInterval()还是setTimeout(),当code参数里放一个带参函数时,定时器都会失效,看下面这个例子: function test(str){ al ...
- js实现点击定位最顶端
//------------------------------------点击按钮------------------------------------ <span onClick=&quo ...
- one thinkphp 文档
http://document.onethink.cn/manual_1_0.html#onethink_usehelp_config 官网:http://www.onethink.cn/topic/ ...