使用Scratch 3.0制作弹球游戏之终端控制

这是一个重点,也是一个难点,一个游戏的灵魂–终端控制
在着手制作这个游戏之前,我们不妨再脑海里先过下,根据预想好的游戏流程,我们可以看出来,这个游戏基本为两个状态 运行/结束 我们分别可以使用0/1表示,当绿色小旗按钮点击后,终端控制会发布一条当前的游戏状态,所有对象在收到后,根据这个游戏状态(变量)去进行判断,如果是1就显示并运行相关代码,如果是0,停止并隐藏。顺便提一下,切换关卡其实也是变相的游戏结束。但是积分要保持不变
有了这个我们就可以着手写代码了(摆积木)
对于第一个对象,他有两个造型
使用Scratch 3.0制作弹球游戏之终端控制
当绿色旗帜(运行)按钮点下时,我们重置游戏造型,并且对相关变量也要赋予初始值
使用Scratch 3.0制作弹球游戏之终端控制
这样既可。
随后点击发送广播
使用Scratch 3.0制作弹球游戏之终端控制
当角色被点击时,我们要知道,一个是start一个是重新开始,那么我们一定要对游戏状态有判断,由0到1,而不能1-1,这样会出现Bug,后重设变量初始值,更改游戏状态,并发送自定义广播《游戏状态》,在Scratch里对象发送一条广播,对象本身也是可以接收到的,所以我们就要开始接受游戏状态这条广播,并对游戏状态这个变量行进判断来做出对应的操作
比如:当接受到游戏状态时,如果是0,那么证明游戏处于结束状态,那么造型就可以切换到重新开始,如果游戏状态 > 0 代表着游戏正在进行中或进入运行状态,我们需要隐藏自己。使用Scratch 3.0制作弹球游戏之终端控制
其实,这个对象写到这里,已经比较完善了,但是,既然是终端控制,那么他的功能处理也都写在这个,例如规则。
当游戏开始时,就会触发一个重复的判断。判断是否游戏结束,判断游戏是否达到过关标准
第一个:重复判断变量(游戏状态)直到它等于0,我们只会在两种情况下,游戏状态为0,
第一种是切换关卡,第二种是游戏结束,所以,我们不能直接对游戏状态为0的时候停止。在判断游戏状态为0时还是对弹球数量进行判断,如果小于1,那么证明弹球落地。如果不小于1,那证明游戏处于关卡切换。
第二个:关卡切换
随着关卡的递增,难度也在递增,速度和障碍物增加,弹球速度加快,挡板长度变短。
在过关标准上,我是用当前分数=游戏基数x当前关卡,比如,我的游戏基数时10,那么障碍物的数量就可以根据我的游戏基数x当前关卡来计算,当第三关的时候30个障碍物,弹球每消除一个,得分+1,那么第三关就应该是30分,正好是30 = 10x3这样子就能达到标准。很多的判断条件,不建议使用固定值,这样对于一个项目的维护或者开发新的功能时非常不便,这样我如果增加或者减少游戏难度,只需要更改游戏基数即可。
在判断里面一定要注意的是,如果关切大于5的时候就已经代表通关,那么我们直接给一个游戏结束的画面就行,否则就正常进入下一关。
使用Scratch 3.0制作弹球游戏之终端控制
最后一个功能便是游戏结束时伴随重新开始按钮一起显示的历史排名
对于历史排名,由于Scratch 特性,我思路提供给大家。

如果我的得分大于第5名,那么触发用户输入
使用Scratch 3.0制作弹球游戏之终端控制
之后进入循环判断,如果比某一名大,那么在那一名前面插入,并删除最后一个元素即可
这样就解决了排序等问题,是的,就这么简单
使用Scratch 3.0制作弹球游戏之终端控制
最后只需要将两个数组整合并配合一些字符连接在一起即可
使用Scratch 3.0制作弹球游戏之终端控制

最终效果
使用Scratch 3.0制作弹球游戏之终端控制