版权声明:本文为博主原创文章,未经博主同意不得转载。 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配置关卡的时候,似乎有点纠结,由于,没有地图。没有參照物,我们要凭空去设置怪物的位置。(小若:怪物不是有图片吗?谁说没有參照物?)

 

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

 

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

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

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://download.csdn.net/detail/musicvs/7392931

这是用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实现关卡编辑器的更多相关文章

  1. Cocos2d-x3.0游戏实例《不要救我》第十篇(结束)——使用Json配置数据类型的怪物

    如今我们有2种类型的怪物,并且创建的时候是写死在代码里的,这是要作死的节奏~ 所以.必须可配置.不然会累死人的. ; i < size; ++i) { int id = root[i][&quo ...

  2. Cocos2d-x3.0游戏实例《不要救我》第一章——前言

    我们可以学习? 这是一个非常easy游戏.但更多的东西用(对于初学者).至少,对于它的一个例子,有点多. 笨木头花心贡献.啥?花心?不呢.是用心~ 转载请注明,原文地址:http://www.benm ...

  3. Cocos2d-x3.0游戏实例《不要救我》三——背景滚动周期

    好.让我们来解释一下这个无限循环滚动的背景.这方面的知识一直讲到烂.我以前的文章还介绍了.所以不是那么特别清楚. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址:http://www. ...

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

    /* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦.他说:随便写,第一别全然照搬代码:第二能够说 ...

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

    这篇的内容非常easy,获取UI控件,然后使用它. 还记得我们在UI编辑器中给三个button分别命名了吧? 如今要用上了. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http ...

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

    这篇我要给大家介绍两个知识点: 1. 创建游戏物理世界 2. 没了(小若:我噗) 害怕了?不用操心.这太简单了~! 笨木头花心贡献.啥?花心?不呢.是用心~ 转载请注明,原文地址:http://www ...

  7. Cocos2d-x3.0游戏实例之《别救我》第四篇——乱入的主角

    好了,前面说了那么多废话,最终要进入正题了(等等,敢情前面你都是在耍我们么?) 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www.benmutou.com/blo ...

  8. Cocos2d-x3.0游戏实例之《别救我》第七篇——物理世界的碰撞检測

    事实上我也非常吃惊-居然写到第七篇了,我估计也就是四篇的内容,感觉非常奇妙,我也不会非常唠叨什么吖);    // 0001 );   // 0001 ); // 0001 这样我们才干监听到它们的碰 ...

  9. cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第二步---编辑器(1)--触摸加入点

    /* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦,他说:随便写,第一别全然照搬代码:第二能够说 ...

随机推荐

  1. CSS3 not

    AND (&&): .registration_form_right input:not([type="radio"]):not([type="check ...

  2. iOS-Gif图片展示N种方式(原生+第三方)

    原生方法: 1.UIWebView 特点:载入速度略长,性能更优.播放的gif动态图更加流畅. //动态展示GIF图片-WebView -(void)showGifImageWithWebView{ ...

  3. EFM8单片机与I2C外设通信

    近期帮同学做一个项目,开发板是EFM8单片机,支持SPI和I2C协议(SMBus).非常久没搞过单片机了,并且条件限制,为了使单片机和外设成功通信.花了一个星期时间.刚開始使用SPI.发现代码逻辑都没 ...

  4. 外部jar包 @Service 无法注解无法扫描问题

    在确保spring 配置 无误的情况下,如: <context:component-scan base-package="your.can.pakeage"></ ...

  5. linux管理员工具

    htop 任务管理器 bmon 网络监控 ### 详情 --------------------------------------------------- htop 任务管理器 bmon 网络监控

  6. UI-9-UITableView

    课程要点: UITableView及其两种风格和三部分 UITableViewController UITableViewCell及其四种风格 通过代理给UITableView设置cell 性能优化 ...

  7. JavaScript 代码块

    JavaScript 语句通过代码块的形式进行组合. 块由左花括号开始,由右花括号结束. 块的作用是使语句序列一起执行. JavaScript 函数是将语句组合在块中的典型例子. 下面的例子将运行可操 ...

  8. python 爬虫5 Beautiful Soup的用法

    1.创建 Beautiful Soup 对象 from bs4 import BeautifulSoup html = """ <html><head& ...

  9. Ubuntu安装特定版本安装包

    Ubuntu安装特定版本安装包可以用aptitude,aptitude是apt-get的高级版,使用起来更强大. aptitude install package=version 比如我要安装2.6. ...

  10. 构造方法与构造块的执行顺序(区别于static)

    小面试题:在类的实例化时,会调用类的构造块(类中的构造块)和构造方法,无论构造方法在前还是在后,都先执行构造块 class Person{ public Person(){ System.out.pr ...