目录
案例介绍
新冠病毒,这个词语在去年年底俨然而生,在今年上半年发展迅速;在我们中国3月2-3日达到了增长的顶峰。也正是因为这个新冠病毒,给我们人民,国家带来了非常重大的损失。到目前为止全球大环境新冠病毒还在不断的蔓延,疫苗正在研发之中。我们今天这个案例的主要目的是给小朋友们宣传如何防范新冠疫苗;并结合我们所学的Scratch知识完成案例的制作。
一、案例演示
【Scratch案例演示】Scratch3.0消灭新冠病毒
二、案例分析
程序启动后,第一个场景是一个旁白(也可以叫做案例背景说明),旁白结束之后呢会转到下一个场景作战实验室,在作战实验室里面,我们的特战队员选择自己的装备进行武装;装备都是针对新冠病毒的有:护目镜、口罩、防护服、病毒枪;武装好了之后就转到第三个场景消灭新冠病毒的战场;新冠病毒是一个病毒Boss,会源源不断的衍生出小的病毒,不断的出现在场景里面向特战队员袭击而来;如果特战队员被病毒感染了则受伤,任务失败。如果特战队员将新冠病毒的血量消灭到0则任务完成。完成任务之后会有一个防护小贴士:勤洗手,多通风,少出门,少聚集,出门戴口罩,尽量不去人多的地方,身体如果有感冒发烧及时就医。告知我们小朋友们疫情期间的注意事项。
1.角色分析
从案例演示中,我们可以看到这个案例里面的角色相对而言会复杂一些,我们逐个场景来分析:
1、旁白任务、角色特工
2、作战实验室机器人Giga、护目镜、口罩、防护服、病毒枪
3、新冠病毒、小病毒、子弹
2.背景分析
从案例演示和案例分析中,我们可以看到有三个场景,所以就有三个背景,分别是
纯黑背景、作战实验室、消灭病毒背景
三、角色和背景设置
1.角色设置
1、删除默认的小猫角色,然后选择添加角色进入角色库,添加一个特战队员人物(Monet)
2、选中刚添加的特战队员改名(特工),只保留第一个造型,改名为(特工1),然后删除其它造型;接着从我们电脑上上传一个造型,并命名为(特工2),如下图所示:
3、接着我们一次从电脑上上传其它的已经设置好的角色(任务、护目镜、口罩、防护服、病毒枪、新冠病毒、小病毒和子弹),如下图所示:
4、选择护目镜角色,点击造型标签进入角色造型界面,复制一个护目镜造型,然后用画笔工具,选择填充颜色红色,在护目镜前面画一个红勾,这个是为了模拟我们选择了护目镜装备,如下图所示:
5、采用同样的方式对口罩、防护服、病毒枪进行相应的操作设置,完成后如下图所示:
6、然后选择我们的新冠病毒角色,同样回到角色造型面板,从电脑上上传另外一个造型,如下图所示:
7、最后所有角色添加完之后如下图所示:
2背景设置
1、选择默认的背景,进入背景编辑器界面,选择画笔,选择填充颜色黑色,绘制成如下纯黑背景,如下图所示:
2、从电脑中上传我们已设定好的作战实验室和消灭病毒的背景,如下图所示:
四、流程分析
1.角色流程
我们通过案例演示和角色分析中可以看到由于角色会比较多,而且相对而言部分角色代码模块也较多,我们逐一讲解
1、旁白任务:
A、从上往下移动功能实现
开始→初始背景→初始位置→移到中间位置→等待→移到最上层→切换下一个场景
B、任务的 从模糊到清晰在到模糊的功能实现
开始→显示→虚像特效设为100→虚像慢慢减小→等待→虚像在逐步加大→隐藏
C、背景音乐播放(我们放在旁白任务里)
开始→循环播放【Movie2音效等待播完】
D、切换到下一个场景后,本场景的程序需要停止
当背景切换成作战室→停止该角色的其它脚本
2、特工角色
A、程序启动时并没有显示特工
开始→换成特工1造型→隐藏
B、换成作战室背景时
当背景换成作战室→初始位置→显示→重复判断是否可以出发【判断是否进行了装备武装<换成特工造型→说武装完毕→广播请求消息并等待→说保证完成任务→广播出发→切换成消灭病毒场景>】
C、换成消灭病毒场景时
当背景换成消灭病毒场景→循环跟随鼠标移动【移到鼠标的X坐标→判断是否碰到小病毒<广播失败>】
D、当新冠病毒被消灭之后
当接收到成功→停止该角色的其它脚本→说任务完成→等待机器人说完话→说疫情小贴士
E、受伤之后(失败)
当接收到失败→停止该角色的其它脚本→说受伤了→等待机器人说完话→停止全部脚本
3、机器人Giga
A、程序启动时
开始→隐藏
B、换成作战室场景时
当背景换成作战室→显示→说进入作战室→说点击右侧装备进行武装→广播选择
C、当收到请求消息
当接收到请求→说可以出发安全返回
D、换成消灭新冠病毒场景时
当背景换成消灭新冠病毒→隐藏→停止该角色的其它脚本
E、当新冠病毒被消灭之后
当接收到成功→显示→说恭喜完成任务→停止该角色的其它脚本
F、受伤之后(失败)
当接收到失败→显示→说好好疗伤派其它特工→停止该角色的其它脚本
4、护目镜
A、程序启动时
开始→换成护目镜1造型→隐藏
B、换成作战室场景(播放作战室的背景音乐,也可以选择口罩、防护服和病毒枪;这几个角色只出现在作战室场景)
当背景换成作战室→重复播放背景音乐【播放DanceEnergetic等待播完】
C、当接收选择消息
当接收到选择→显示→初始位置
D、角色被点击
当角色被点击→换成被勾选的造型护目镜2→播放Coin声效
E、切换到消灭新冠病毒场景
当背景换成消灭新冠病毒→隐藏→停止该角色的其它脚本
5、口罩、防护服、病毒枪的流程和护目镜的流程(A/C/D/E)这四个一样,只是初始位置不一样,就不重复了
6、新冠病毒
A、程序启动时
开始→隐藏血量→初始化血量值→隐藏
B、控制新冠病毒移动过程中切换造型
当背景换成消灭新冠背景→重复变化造型【下一个造型→时间间隔】
C、控制新冠病毒移动
当背景换成消灭新冠背景→显示血量→显示角色→初始朝向→初始位置→将旋转方式设为左右翻转→不断移动【移动步数→碰到边缘就反弹→是否碰到子弹<将血量减1>→血量是否等于0<广播成功>】
D、换成消灭新冠病毒场景(播放背景音乐)
当背景换成消灭新冠病毒→重复播放背景音乐【播放Video Game2并等待播完】
E、当新冠病毒被消灭之后
当接收到成功→停止该角色的其它脚本
F、受伤之后(失败)
当接收到失败→停止该角色的其它脚本
7、小病毒
A、程序启动时
开始→隐藏
B、模拟新冠病毒产生小病毒
当背景换成消灭新冠病毒→重复产生新的小病毒【移到新冠病毒→克隆自己→时间间隔】
C、作为克隆体启动时
当作为克隆体启动时→设置随机大小→显示→不断的袭击特工【将Y坐标值增加→是否碰到子弹<时间间隔→删除克隆体>→是否碰到特工<时间间隔→删除克隆体>→是否碰到舞台边缘<删除克隆体>】
D、当新冠病毒被消灭之后
当接收到成功→停止该角色的其它脚本
E、受伤之后(失败)
当接收到失败→停止该角色的其它脚本
8、子弹
A、程序启动时
开始→隐藏
B、模拟病毒枪发射子弹
当背景换成消灭新冠病毒→重复产生子弹【克隆自己→时间间隔】
C、作为克隆体启动时
当作为克隆体启动时→显示→设置子弹大小→移到枪口位置→不断的发射子弹【将Y坐标值增加→是否碰到小病毒<时间间隔→删除克隆体>→是否碰到新冠病毒<时间间隔→删除克隆体>→是否碰到舞台边缘<删除克隆体>】
D、当新冠病毒被消灭之后
当接收到成功→停止该角色的其它脚本
E、受伤之后(失败)
当接收到失败→停止该角色的其它脚本
2.背景流程
我们的这个案例中背景的一些指令都分解在具体场景的角色中
五、用到指令
1 运动模块
-
:角色移动指定的步数,正数就是向前,负数就是向后
-
:将角色移动到舞台中央指定的X/Y坐标位置,默认坐标(x:0,y:0)
-
:将角色移到随机位置,下拉三角可以选择移到其它角色
-
:将角色在规定的时间内滑行到指定的XY坐标位置。
-
:将角色朝向指定的角度
-
:将角色的Y坐标也就是纵向增加指定的值,正数朝上,负数朝下
-
:角色碰到边缘后就会以垂直边缘为中线的对称角度进行反弹
-
:旋转方式有三种模式,分别是:左右翻转(正常向左向右)、不可旋转(不能旋转)、任意旋转(朝任何角度旋转也是默认旋转方式)
-
:将角色的坐标值增加或者减少,正数增加往上;负数减少往下。
2 外观模块
-
:说一句话,并在舞台上显示一定的时间
-
:说一句话并一直显示在舞台上
-
:将角色的大小设定为指定的值,这里面的大小指的是百分比
-
:将角色换成指定的造型
-
:将角色的造型换成下一个造型,如果已经是最后一个造型重新回到第一个造型
-
:这是设置角色的特效值,特效分别有颜色、鱼眼、旋涡、像素化、马赛克、亮度和虚像。我们这个案例中要用到的是虚像。
-
:将角色显示在舞台上
-
:将角色不显示在舞台上
3 声音模块
-
:播放某个声音并等声音播放完成在执行后面的积木指令
-
:播放某个声音,同时执行后续的积木指令
4 事件模块
-
:程序启动之后,点击小绿旗,执行后续的积木指令
-
:当角色被点击之后,执行后续的积木指令
-
:当换成某个特定的背景之后,执行后续的积木指令
-
:当接收到某个消息的时候,执行后续的积木指令
-
:向所有的角色发送一个消息,同时执行后面的积木指令
-
:向所有的角色发送一个消息,并等待这个消息被执行完成之后在执行后续的积木指令
5 控制模块
-
:时间间隔,等待指定的时间后执行后面的指令
-
:一直重复执行积木框里面的积木
-
:条件判断,如果条件为真,那么执行积木框里面的积木,在执行后面的积木;条件为假,框里面的积木不执行,执行后面的积木
-
:停止脚本执行,下拉可选项有停止全部脚本、这个脚本和该角色的其他脚本
-
:当作为克隆体启动时,执行后续的积木指令
-
:克隆自己,下拉三角可以选择其它角色
-
:删除此克隆体,删除当前的克隆体
6 侦测模块
-
:是否碰到鼠标指针,下拉可选项还有舞台边缘和其它角色
-
:获取鼠标的X坐标值
-
:获取舞台的背景编号、背景名称、音量、变量名称;或者是角色的X坐标、Y坐标、方向、造型编号、造型名称、大小、音量和变量名称
7 运算模块
-
:加法运算,两个参赛相加;参数可以是具体的数值,也可以是其它变量或者系统变量,或者其它参数表达式
-
:减法运算,两个参赛相减;参参数可以是具体的数值,也可以是其它变量或者系统变量,或者其它参数表达式
-
:在某个区间中随机产生数值,可以是整数也可以是小数
-
:逻辑判断模块,判断前面的值是否等于后面的值,等于返回逻辑值真,否则返回假
-
:逻辑与模块,需要同时满足前面的条件判断和后面的条件判断,只有两个都为真的情况下表达式才返回逻辑值真,否则返回假
8 变量模块
-
:新建变量,弹出框中输入变量名称,可以选择适用所有角色和仅适用当前角色
-
:将指定的变量设为指定的值
-
:将指定的变量增加制定的值
-
:获取变量的值,前面方框有打钩就会在舞台上显示,没有选中就不会显示在舞台上
-
:将指定的变量显示在舞台上
-
:将指定的变量不显示在舞台上
六、主要程序指令编写
1.旁白任务
1-7对应的就是流程分析中的A流程图
8-18对应的就是流程分析中的B流程图
19-21对应的就是流程分析中的C流程图
22-23对应的就是流程分析中的D流程图
- 点击小绿旗,也就是程序启动,就要执行后续的程序指令
- 换成背景1(纯黑)背景
- 任务的初始位置,在舞台左下方(x:0,y:-257)的具体位置
- 在4秒钟内滑行到舞台中间x=0,y=0位置
- 等待4秒钟(字停留在中间一会)
- 在4秒钟内滑行到舞台上方x=0,y=257
- 换成作战实验室背景
- 同第1步一样
- 将角色显示在舞台上
- 将虚像特效设为100(基本上看不到)
- 重复执行20次减少虚像特效值(慢慢变的清晰)
- 每次减少虚像特效5
- 时间间隔0.2秒,缓慢的间隔
- 时间间隔6秒让任务在中间停留的时候变得清晰,时间要长于之前停留的时间
- 重复执行20次增加虚像特效值(慢慢变的模糊)
- 每次增加虚像特效5
- 时间间隔0.2秒,缓慢的间隔
- 将角色隐藏起来
- 同第1步一样
- 不断播放声音
- 播放第一个背景音乐Move2并等待播完
- 当背景切换到作战实验室的时候,执行后续的积木指令
- 将当前角色的其它脚本停止
2.特工角色
1-3对应的是A流程图
4-14对应的是B流程图
15-20对应的是C流程图
21-25对应的是D流程图
26-30对应的是E流程图
- 点击小绿旗,也就是程序启动,就要执行后续的程序指令
- 换成特工1造型
- 开始的时候特工没出现所以隐藏
- 背景切换成作战室时,执行后续的积木指令
- 特工的初始位置x=0,y=-130
- 将特工显示在舞台上
- 重复执行第8-14个积木指令,是否武装完毕能否出发
- 判断所有的装备是否选择(护目镜、口罩、防护服、枪)
- 武装好之后换成特工2造型
- 说我已武装完毕,请求出发并在舞台上显示2秒钟
- 广播准备完毕并等准备完毕消息执行完之后在执行后续指令
- 说总部放心,保证完成任务并在舞台上显示2秒钟
- 广播出发消息
- 换成消灭新冠病毒场景(背景3)
- 当背景换成消灭新冠病毒场景(背景3),执行后续的积木指令
- 时间间隔0.1秒,开始消灭病毒
- 重复执行第18-20个积木指令,跟随鼠标移动
- 移到鼠标的X坐标值,Y坐标不变
- 判断移动过程中是否碰到小病毒
- 碰到小病毒,游戏失败广播失败消息
- 收到任务完成消息,执行后续的积木指令
- 停止该角色的其它脚本指令
- 说任务完成
- 等待3.1秒(等作战室机器人Giga说完话)
- 广播疫情小贴士,并一直显示在舞台界面
- 收到任务失败消息,执行后续的积木指令
- 停止该角色的其它脚本指令
- 说受伤了
- 等待3.1秒(等作战室机器人Giga说完话)
- 停止全部脚本指令
3.新冠病毒
1-4对应的A流程图
5-8对应的B流程图
9-21对应的C流程图
22-24对应的D流程图
25-27对应的E流程图
28-30对应的F流程图
- 点击小绿旗,也就是程序启动,就要执行后续的程序指令
- 将全局变量血量隐藏,开始的时候不显示只有到场景3才显示
- 将血量值设为指定的值,小朋友们可以自定义30-300都可以
- 隐藏新冠病毒,开始的时候不显示只有到场景 3才显示
- 当背景换成背景3时候,执行后续指令
- 重复变化造型
- 换成下一个造型
- 时间间隔,很短暂0.4秒
- 同第5个指令解释
- 将血量变量显示在舞台上
- 将新冠病毒显示在舞台上
- 初始朝向朝右
- 初始位置x=0,y=150
- 将旋转方式设为左右翻转
- 重复执行第16-21个积木指令,左右移动
- 每次移动2-7步
- 碰到边缘就反弹
- 是否碰到子弹
- 碰到子弹血量减少1
- 判断学生是否为0
- 血量为0广播任务完成消息
- 同第5个指令解释
- 循环播放背景音乐
- 播放背景音乐Video Game2并等待播完
- 当接收到任务完成,执行后续的积木指令
- 隐藏变量血量
- 停止该角色的其它脚本
- 当接收到任务失败,执行后续的积木指令
- 隐藏变量血量
- 停止该角色的其它脚本
4.子弹
1-2对应的是A流程图
3-6对应的是B流程图
7-20对应的是C流程图
21-22对应的是D流程图
23-24对应的是E流程图
- 点击小绿旗,也就是程序启动,就要执行后续的程序指令
- 隐藏子弹,开始的时候不显示只有到场景 3才显示
- 当背景换成背景3时候,执行后续指令
- 重复克隆自己
- 克隆自己
- 时间间隔0.3秒
- 党作为克隆体启动时,执行后续的积木指令
- 将子弹显示在舞台上
- 设置子弹大小8
- 将子弹的初始位置移到特工手持的枪口的位置
- 重复执行第12-20个积木指令,子弹射击
- 将子弹的Y坐标值每次增加3,当然这个值小朋友可以自行更改
- 是否碰到小病毒
- 碰到病毒之后非常简短的间隔0.01秒,这个间隔主要是在防止删除的时候,小病毒那边也要删除,防止那边删了这边没删,或者这边删了那边没删
- 删除此克隆体
- 是否碰到新冠病毒
- 解释同14
- 删除此克隆体
- 是否碰到舞台边缘
- 删除此克隆体
- 当接收到任务失败,执行后续的积木指令
- 停止该角色的其它脚本
- 当接收到任务完成,执行后续的积木指令
- 停止该角色的其它脚本
5.其它角色
其它角色的积木脚本可以结合角色分析时的流程图,然后参考上面的角色代码进行编写,都大同小异所以就不一一列举。
七、思维拓展
- 小朋友们可以丰富一下故事情节
- 小朋友们可以增加新冠病毒的攻击难度
- 小朋友们可以增加角色小猫新冠病毒时候的一些角色升级,子弹升级等等
总结
以上就是本次案例的实现过程,这个案例说难不难,说简单也还有点复杂;这个主要适合对Scratch感兴趣,喜欢Scratch编程,有自己的一些方法和创意。本次案例主要涉及到以下一些知识点:
- 掌握坐标轴和坐标值的概念及使用
- 掌握条件判断语句的使用
- 掌握消息发送和消息处理机制
- 熟练掌握变量的定义和使用
- 熟练掌握碰撞检测机制,理解多角色之间是如何进行碰撞的
- 充分理解并掌握运算模块中随机数、逻辑判断及逻辑或的使用
- 学会将复杂的程序流程简单化,学会分析问题和解决问题
- 掌握疫情期间的一些个人防护小知识