H5开发带有地图编辑器的游戏

# H5开发带有地图编辑器的游戏

  • 首先我们需要一个编辑器相关的东西得借助什么。这块有很多种选择,比如xml,csv、json、甚至纯文本都是可以的

但是基于小巧和种种原因,我最终选择了json,并且决定地图编辑器用U3d实现,而游戏则用H5实现

首先思考何为地图编辑器,这个得从游戏开发中的脚本开始说起了,其实脚本语言和外置的json、xml高度相似,如果你读过游戏的编译原理这本书的话…

书籍地址:https://book.douban.com/subject/1927405/

1.地图编辑器到底需要什么

1.如果采取json格式如何设计数据类型

首先在游戏里,必然存在地形、障碍物、敌人、特效多种类型的元素,当然如果要设计一些比较高端的元素可能需要在json中外部引用进行扩展脚本,这里就不在这一次探讨的范围,这次我们主要还是区分地形,障碍物、敌人、特效这几种情况进行设计。

不同的敌人、障碍物、地形都得设置不同的参数,json包括的作用就很好显示出来了,也就是葫芦娃套娃,一层套一层,单位放在单位类里面,而这个单位的属性又放在单位这个类里面,单位的属性又有具体的子属性。

为了方便大家的理解,我这里直接放出一个实例给大家看看

{
    "enemy": [
        {
            "id": 207,
            "type": 2,
            "name": "瘦子",
            "posX": 55.0,
            "posY": 0.0,
            "C": 30.0,
            "Size": 0.10000000149011612,
            "shakeTime": 300.0,
            "speedipa": 300.0,
            "idleAni": "slim_idle",
            "beHitAni": "slim_die",
            "audioSrc": "Q",
            "isbeHit": true
        },
        {
            "id": 901,
            "type": 2,
            "name": "女神",
            "posX": 80.0,
            "posY": 0.0,
            "C": 10.0,
            "Size": -0.15000000596046449,
            "shakeTime": 100.0,
            "speedipa": 100.0,
            "idleAni": "Lady_idle",
            "beHitAni": "Lady_die",
            "audioSrc": "Q",
            "isbeHit": false
        },
        {
            "id": 207,
            "type": 2,
            "name": "瘦子2",
            "posX": 25.0,
            "posY": 0.0,
            "C": 30.0,
            "Size": 0.10000000149011612,
            "shakeTime": 300.0,
            "speedipa": 300.0,
            "idleAni": "slim_idle",
            "beHitAni": "slim_die",
            "audioSrc": "Q",
            "isbeHit": true
        }
    ],
    "Length": 100
}

引入眼帘就是各种参数了,这里参数并没有进行太过复杂的套娃,毕竟我目前开发这款游戏属于偏休闲横板游戏,自然也没有设计过于复杂的参数和套娃模式了。

这里还是给大家介绍下这些参数的作用。

字段名 数值类型 作用
id number 207 用于区分具体对象
type number 2 进行功能函数调用
name String 瘦子(敌人) 用于给对象起名字
posX number(float) 55.0 判断对象x位置
posY number(float) 0.0-为了避免参数太多,这里应该和x放在一起,string里逗号进行split分开比较好但是这里为了比较便于理解就分开了 判断对象y位置
C number(float) 30.0 参数C,通过公式来计算,来为不同单位添加不同的打击感
Size number(float) 0.10000000149011612 参数SIze,通过公式来计算,来为不同单位添加不同的打击感
shakeTime number(float) 300.0 单位被击杀后晃动摄像机时间
idleAni String slim_idle 单位默认的动画文件
beHitAni string slim_die 单位被打击事播放的动画文件
audioSrc string Q 单位死亡播放的声音文件
isbeHit bool true 是否需要被击杀进行计分
func1 obj e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值