zoukankan      html  css  js  c++  java
  • 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实现关卡编辑器

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

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

     

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

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

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

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

     

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

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

    Cocos2d-x3.0游戏实例之《别救我》第八篇——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实现关卡编辑器

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

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

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

    我的艺术细胞比較发达,大家不用自卑。多练习练习就好了。嗯。

    (小若:你的艺术细胞是反着长的吧?)

     

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

     

    创建怪物属性层

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

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

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

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

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

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

    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实现关卡编辑器

    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实现关卡编辑器

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

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

     

    好,保存一下。

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

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

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

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

     

    最后变成这样:

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

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

    剩下一小块。

     

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

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

     

    下一篇。我们開始要使用这个关卡配置文件去载入怪物了~

     

  • 相关阅读:
    Caused by: java.lang.UnsatisfiedLinkError: Couldn't load 。。。。
    final,finally,finalize
    Java位运算总结:位运算用途广泛《转》
    Ext.Ajax.request同步请求
    xstream 别名的用法<转>
    MySQL 获得当前日期时间(以及时间的转换)
    关于用xercesImpl包解析xml文件遇中文报错问题
    kafka java示例
    varnish、squid、apache、nginx缓存的对比<转>
    websphere性能设置和日常维护
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8646080.html
Copyright © 2011-2022 走看看