第五课:通关单元
好的欢迎来到做出一连串能玩的地图的最后一步
让一个个地图信息存到一个列表中,再由一个通关单元进行下一关的操作
让我们准备好素材先
之后来到编辑界面
但现在并没有下一关的程序,所以我们先想办法可以切换到下一关
要有下一关,那就肯定要有一个列表来储存
注意要是公有列表,是适用于所有角色、更是列表
我们将用这个列表储存我们的所有关卡信息,所以千万不要误删或者忘记保存
否则你做了999小时的一套关卡可能会因此消失(别问我是怎么知道的😭)
为了方便后面制作关卡,我们需要一套方便的地图添加方法
首先我们要一个公有变量来明确我们目前的关卡
记得初始化为1
接下来是我们的三大工具
第一个:顾名思义,就是把所有关卡的第当前地图项替换为我们现在摆好的地图
第二个:就是把我们摆好的地图直接加入所有关卡
第三个:就是下一关
从第一个开始做吧
要更新地图,肯定要先保存地图,而且应该由唯一的本体进行操作
相信你还记得,保存地图后,地图是被保存到了“地图单元信息”的第一项
很好,有了地图信息,我们就可以直接更新了
很好,这样就行
然后是下一个,同样的我们要先由角色本体保存地图
再是把保存好的地图加入到所有关卡里就好了
第三个,这个涉及到的就是上传了
相同的,我们也是用角色本体来执行
要下一关,首先要让当前关卡增加1
再把所有地图的第关卡项上传上去,因为我们上传关卡上传的是“地图单元信息”的第一项
最后是广播上传
但先等等,上传地图后原来的克隆体并不会被删除,所以我们要先把克隆体全删了先
现在可以去试试自己画个地图再保存/上传试试~
现在就是谈到地图单元的代码部分了
首先就是确认造型
因为这里通关单元的大小还包含了外圈的发光,所以不能直接用侦测是否碰到角色
否则玩家就算只碰到边缘的发光部分,就直接判定通关了
所以我们要用距离来判断
这里先别急着切换关卡
我们还有通关单元的特效、角色过关动画、场景切换动画都没做嘞
那么从通关单元特效和场景切换动画做起吧,因为这些都是在通关单元的位置发生的
首先,我们要获取通关单元的位置才能确定克隆造型的位置
所以我们要记录通关单元的位置
其次,我们还要一个角色来承载通关单元特效的代码
别忘了拿上我们的造型素材
暂时无法在飞书文档外展示此内容
暂时无法在飞书文档外展示此内容
然后先别急着写程序,我们需要一个介质来克隆通关粒子
我这里选择的方法是广播消息
当然这个消息又通关单元来广播
让我们再切回通关特效,现在就可以写程序啦
让我们思考,接收到消息后,由谁克隆?在哪克隆?克隆什么?
当然是由唯一的角色本体在通关单元的位置克隆粒子特效
是的,就是这样
然后是粒子的代码
我们想,在粒子被克隆时,粒子有哪些属性可以用随机数变化?
x、y速度
大小
虚像
这样就够了√
有了xy速度,就让我们加入xy速度的减小以及移动吧
别忘了执行完后要删除克隆体
现在已经很好了,但还可以更完美
比如说大小慢慢变小,虚像慢慢增加
还有不要忘了克隆体启动时显示
来试试效果
但可以发现一个问题,我们现在处于编辑模式也会发出粒子,这当然不行
所以我们设定只有处于试玩模式才能克隆粒子
接下来是关卡切换了
也就是上面用到的一大块黑色造型
我们要的是让这个造型从右往左快速划过
所以我们要先把造型移动到我们看不到的地方,并且不跟随摄像机
然后是移动到中心点,也就是完全覆盖住屏幕的时候
接着等待一下再划走,最后删除
这样,你就得到了一个效果还算不错的切屏效果
这里要记一下切屏的持续时间为5帧,因为后面是要黑色全部挡着屏幕时切换地图
然后我再准备一下特效的克隆途径
切换回地图部分
在可以判定下一关时,先克隆切屏,在黑色覆盖住整个屏幕时进行下一关的地图克隆
最后的等待是为了防止重复广播信号
因为之前设定的广播下一关时地图单元自动删除,所以等待就相当于停止这个单元的循环了