哟,大家好呀,不知不觉已经过(拖)去(更)了好长时间了呀~国庆之后连续七天的课程怎么样,是不是很exciting啊……所以一不小心就这么长时间啥也没写了……
--------------------------------------------------------------------------------
首先是一如既往地硬广告
前几天抽空做了一个子弹时间的小范例,已经登陆了steam创意工坊,有正版的同学可以下载来玩玩~
当然根据反馈修复完bug什么的以后肯定是会写在这里的~
--------------------------------------------------------------------------------
好了,正文开始~
坦克大战可以说是一个很经典的游戏,我小时候虽然没在红白机小霸王什么的上面玩过原版,到是拿诺基亚JAVA手机玩过各种改版……
坦克大战的精髓所在,除了游戏系统之外,大概就是自定义关卡了。
好了,我们来看看都需要做些什么东西进去:
首先,自己的坦克,敌人的坦克,以及攻击用的子弹(或许叫做炮弹更合适?)
然后就是道具:增强火力的五角星,静止敌人的时钟道具,消灭所有敌人的手榴弹,以及增加生命的道具
紧接着是地形,根据能否击穿和能否通行,设定为砖墙(可击穿)、海水(不可通行)、钢板(升级后可击穿)、森林(暂时略过)、地板(可通行)。
--------------------------------------------------------------------------------
那么地形怎么来制作呢?要检测子弹和可破坏地形的碰撞,以及主角在移动的时候和方块的碰撞,当然是要用active啦~然后再来主角和它们的碰撞检测……
慢着!听起来很简单也很美好,但是,如果这样的话,后续自定义关卡的修改和保存就不是那么容易和直观了……
所以我们另辟蹊径——所有的地形,都由计数器来实现!计数器一样具有active属性,可以检测碰撞,设定运动模式等等
首先,我们简化一下,一个关卡设计成10*10的大小,然后根据关卡的大小来决定计数器的大小。
以我的854*480为例,主要要满足y方向上面的大小,所以一个计数器的大小设计为48*48就可以了。
在场景里面新建一个计数器,类型设置为numbers
然后双击计数器打开编辑界面
地面什么的直接涂黑就好了,其他的全部都用某一种颜色代替。当然,自己导入图片也是可以的。
黑色-地面,橙色-砖墙,蓝色-海洋,灰色-水泥
好了,点击OK,保存进去。然后修改计数器的大小~
那么我们就得到这么一个玩意
接下来就要让它充满整个屏幕咯~
当然,一个一个的clone来充满屏幕,之后在一个一个的手动修改图块的数值也不是不行,我们后面会说到使用一个二维数组来存储地图信息,并且在关卡的开始自动创建和刷新所有的图块。但是为了方便起见,我们这一次先这么做吧~
把它的坐标设置为48,48
计数器默认热点在右下角,这一点要稍微留意一下~
接着clone一个10*10的出来,我们的地图基础就完成了。
然后你就可以选中图块,然后再修改他的initial value,来改变图块~
手动改了个这么个玩意
现在你在场景里面有100个物体了……再放置会显得很凌乱,所以我们新建一个文件夹来放置它们
右键单击当前场景,点击New Folder
选中folder,然后重命名为图块,接着……
似乎要手动一个个把他们拖进去……哎……好麻烦啊……
算了就先这样吧(手动滑稽)
(哎呀,哎呀,哎呀……别打了,别打了,别——)
我们下一次再继续哦~