首页
搜索 搜索
当前位置:国内 > 正文

用Scratch编写《植物大战僵尸2天空之城第16天》

2023-06-27 16:29:50 哔哩哔哩

第一部分 作品预览

《第16天》操作指南:


(资料图片)

1、点击绿旗,准备开始游戏;

2、点击开始按钮,进入战斗;

3、使用上下左右键,移动植物,射击僵尸的同时,也要注意躲避僵尸的袭击;

4、随着得分的增加,植物不断进化;

5、得分超过30000分,游戏胜利;植物血量低于0,游戏失败。

作品下载链接:

链接:/s/1FMR7yLfNc2GwsZkfSKcGCQ?pwd=ds3k 

提取码:ds3k

第二部分  任务解读

1、开始按钮任务解读:

开始按钮角色主要有任务:

任务1】初始化操作。绿旗点击之后,进行位置、大小等必要初始化操作。

任务2】碰到鼠标改变外观。重复执行:等待碰到鼠标指针,增加颜色特效,增加大小;等待碰到鼠标不成立的时候,清除图形特效,同时恢复初始大小。

任务3】被鼠标点击,开始游戏。重复执行:等待碰到鼠标指针,并且按下鼠标,广播“开始”消息,然后隐藏起来,最后停止相关脚本。

2、地图任务解读:

地图角色主要有任务:

任务1】初始化操作。绿旗点击之后,进行位置、大小、造型等必要初始化操作。

任务2】移动与克隆。收到开始消息之后,切换造型,控制本体缓慢向左移动,移动一段距离之后隐藏本体;与此同时,重复执行克隆自己。

任务3】克隆体移动。作为克隆体启动之后:将图层移到最后面(保证白云的克隆体处于倒数第二层),设定好出现位置并显示出来,然后缓慢向左移动(移动速度和本体要保持一致)移动完成之后,删除此克隆体。

注意:本体的移动速度可根据个人偏好进行设定,至于本体的出现位置以及消失位置、克隆体的出现位置以及消失位置,需要计算得出,同时还要配合角色的造型特点进行细节调控,需要多点耐心。3、白云任务解读:

白云角色主要有任务:

任务1】初始化操作。绿旗点击之后,移到最后面,然后隐藏起来。【任务2】克隆。收到开始消息之后,重复的克隆自己。

任务3】克隆体移动。作为克隆体启动之后:设定随机大小,设定随机方向,设定随机出现位置并显示出来,然后缓慢向左移动(和地图的移动速度略有不同),当X-坐标小于某个值的时候,删除此克隆体。

注意:如果将X-坐标的临界值设定成固定值,较小的白云可能不会消失,较大的云朵消失的过早,这里用了一个简单的判断算法:X-坐标 < -240 - 大小 / 2;无论白云大小如何变化,这个算法,可以保证左移一定程度之后,都会删除此克隆体。

4、植物任务解读:

植物角色主要有任务:

任务1】初始化操作。绿旗点击之后,进行位置、大小等必要初始化操作。

任务2】造型切换。收到开始消息之后,不断的改变造型。难点是:不仅要改变单一植物的造型,还要根据得分等级,切换不同的植物种类。这里通过“植物级别”变量来实现。

任务3】方向键操作。收到开始消息之后,重复判断按键事件,同时作出相应的移动。

任务4】停止脚本。收到胜利或者失败消息之后,停止该角色的其它脚本。

5、植物武器任务解读:

植物武器角色主要有四项任务:

任务1】初始化操作。绿旗点击之后,将大小设定为100,然后隐藏起来。

任务2】克隆。收到开始消息之后,重复执行:移到植物所在位置,然后播放相应声音、切换相应造型。难点是:根据植物的改变,植物武器也随之作出相应变化,武器声音也随之改变。这里也是通过“植物级别”变量来实现。随后,根据该变量决定克隆体的造型、方向以及克隆数量。

任务3】克隆体移动。当作为克隆体启动之后,不断向前移动,如果碰到舞台边缘,直接删除此克隆体;如果碰到僵尸,播放击中时的声音,切换爆炸造型,设定爆炸效果。

任务4】停止脚本。当收到成功或者失败的消息之后,停止该角色其它脚本,删除此克隆体。

6、僵尸任务解读:

僵尸角色主要有五项任务:

任务1】初始化操作。绿旗点击之后,设置位置、大小、方向等必要操作。

任务2】克隆。收到开始消息之后,重复执行50次:等待变量“释放僵尸”等于1的时候,准备克隆自己,重置变量“僵尸数量”、“消灭数量”、“释放僵尸”,最后一波释放X-型(BOSS)。

难点:为了保证前一波僵尸表演完,再释放下一波僵尸,这里引入了标识性质的变量“释放僵尸”,通过判断“僵尸数量”与“消灭数量”的大小关系,决定是否“释放僵尸”的值。

任务3】碰撞检测。当作为克隆体启动之后,随机选择僵尸种类,初始化僵尸血量,然后重复执行碰撞检测。为了便于代码的维护和阅读,这里自定义了“碰撞检测”积木块,如果碰到植物或者X-坐标小于-240,删除此克隆体;如果碰植物武器,僵尸血量减少,同时判断僵尸是否被消灭;如果僵尸被消灭,得分增加,并根据得分设定植物级别以及宣布游戏结束,然后发出被消灭的音效。

任务4】控制开火。当作为克隆体启动之后,重复执行:根据僵尸名称,设定造型切换,做好开火前的准备:设定开火位置以及开火僵尸。

难点:为了防止不同克隆体僵尸之间的开火信息相互交叉,引入了开火变量,当前一个僵尸执行开火之后,下一个僵尸才能执行开火操作。

任务5】停止脚本。当收到成功或者失败的消息之后,停止该角色其它脚本,删除此克隆体。

7、僵尸武器任务解读:

僵尸武器角色主要有五项任务:

任务1】初始化操作。绿旗点击之后,将大小设定为100,将变量“接收消息”设为1,然后隐藏。

任务2】广播袭击。重复执行:等待变量“开火”等于1,接着将“开火”设为0(下次开火必须等到开火标识重新变成1),然后根据僵尸的名称,广播相应的袭击。

任务3】克隆。当收到袭击的消息之后,移到开火位置,设定前进方向,切换相应造型,然后克隆自己。不同的袭击,前进方向以及克隆次数都不相同,这里需要多一点耐心与细心,处理好克隆操作。

难点:由于袭击任务都是由克隆体完成的,而接收袭击消息的只有本体,为了不让克隆体不执行消息任务,引入“接收消息”变量,只有“接收消息”等于1时,才执行消息内容。

任务4】执行袭击。作为克隆体启动后,首先将变量“接收消息”设置为0,然后执行具体的袭击操作:不断向前移动,如果碰到舞台边缘,删除此克隆体;如果碰到植物,植物血量要被扣除相应的值,接着判断植物血量是否小于0,如果小于0,广播游戏“失败”。

任务5】停止脚本。当收到成功或者失败的消息之后,停止该角色其它脚本,删除此克隆体。

8、结束任务解读:

背景色主要有任务:

任务1】初始化操作。绿旗点击之后,位置移到X:0,Y:0,然后隐藏起来。

任务2】胜利。收到胜利消息之后,换成胜利造型,显示出来,然后设定显示效果。

任务3】失败。收到失败消息之后,换成失败造型,显示出来,然后设定显示效果。

9、背景任务解读:

背景色主要有两项任务:

任务1】初始化操作。绿旗点击之后,为各种变量设定初始值,然后播放片头音乐。

任务2】接收消息。根据收到消息的不同,播放相应的背景音乐。

第三部分  代码编写

由于代码篇幅较长,请下载作品源码进行参照。

第四部分  探究与改良

1、请同学们在原有作品的基础上,结合自己的想法,修改源代码。

2、该作品有一个显著的不完美之处,那就是缺少血量条。请同学们尝试为植物和飞机僵尸添加血量条。

✎ 编 者 寄 语 

关于探究改良部分,希望大家认真思考!本文提供的作品源码及改良源码仅供参考,期待大家探究更优的改良程序!加油吧,后浪!

< 完 >