熊老师在程序启动后宣布比赛开始,让运动员准备就绪,然后吹口哨开始比赛;其他的参赛小伙伴要一边进行跑步比赛的名次角逐,同时还要模拟真实的跑步姿势所以,其他的参赛小伙伴都应该会有两个并列的程序,一个实现跑步比赛,一个实现跑步姿势切换。
熊老师:开始→显示→初始位置→说运动会开始→询问是否准备就绪→吹口哨→变量初始化→隐藏猫咪1:开始→朝向→初始位置→等待→准备好了→跑步【移动步数→时间间隔→是否碰到终点线(名次+1→说出名次→停止当前脚本)】猫咪2:开始→等待→初始造型→切换造型【时间间隔→下一个造型】狗狗1:开始→朝向→初始位置→等待→准备好了→跑步【移动步数→时间间隔→是否碰到终点线(名次+1→说出名次→停止当前脚本)】狗狗2:开始→等待→初始造型→切换造型【时间间隔→下一个造型】兔子1:开始→朝向→初始位置→等待→准备好了→跑步【移动步数→时间间隔→是否碰到终点线(名次+1→说出名次→停止当前脚本)】兔子2:开始→等待→初始造型→切换造型【时间间隔→下一个造型】小马1:开始→朝向→初始位置→等待→准备好了→跑步【移动步数→时间间隔→是否碰到终点线(名次+1→说出名次→停止当前脚本)】小马2:开始→等待→初始造型→切换造型【时间间隔→下一个造型】PS:流程分析里面的【】代表无限循环结构,()代表前面的条件判断为真的情况下需要执行的内容 用到的指令模块 运动模块 :角色移动指定的步数:将角色移动到舞台中央制定的X/Y坐标位置 外观模块 :说一句话并在舞台上显示指定的时长,然后消失:说一句话并在舞台上一直显示,为了最后显示各个名次:将角色的造型换成指定的造型:切换角色造型为下一个造型,如果是最后一个造型就会从新回到第一个造型:将角色显示在舞台上:将角色隐藏,在舞台上不显示 声音模块: :播放指定的声效,熊老师哨声一响比赛开始 事件模块 :程序启动之后,点击小绿旗,执行后续的程序脚本 控制模块: :时间间隔,等待指定的时间后执行后面的指令:一直重复直行模块里面的指令:条件判断模块,如果条件返回值为真(bool值),执行那么模块里面的程序,如果条件不成立,返回值为假,执行条件判断模块后面的程序指令:停止正在运行的当前这个脚本,其它脚本以及其它角色的脚本不受影响 侦测模块: :检测是否碰到指定的颜色,如果是返回bool值(真),否则返回bool值(假),小伙伴们到达终点线通过颜色侦测来识别。 运算模块: :在指定的数值区间(前一个数较小后一个较大,比如在1到10之间)产生一个随机数,1到10可以是1,也可以是2,3。。。10等等,我们并不能确定具体的数值,但是我们知道产生的这个数值在我们指定的区间内。:连接两个指定的字符或者变量或者其它数值,比如连接apple和banana 显示结果就是:applebanana,再比如我们这个案例中需要用到的连接“第“和名次,显示结果就是第1或者第二名,等等 变量模块 :建立一个变量,输入变量名称,然后选择适用于所有角色还是适用于当前角色本题目当中有一个得分环节,所以我们需要建立一个得分变量(可以选择适用于所有角色,也可以选择只适用于当前角色,如果选择适用于当期角色,则计分环节需要在蝙蝠的程序里面进行实现):将指定的变量设定指定的数值:将指定的变量值增加指定的数值 角色和背景设置 角色设置:打开Scratch软件,默认会有一个猫咪角色,我们保留,然后我们从角色库中添加其它的角色
我们这个案例中有一个裁判员(熊老师、然后四个运动员(猫咪、兔子、狗狗、小马)):所以我们要分别将这些运动员添加进来。如下图所示。
依次把其它角色添加进来,并调整好相应大小,添加好后如下图所示
背景设置 默认的是空白的舞台背景,我们可以自己在这个背景上或者新建一个背景绘制我们的跑到、起点和终点通过自带的绘制工具进行绘制,如下图所示最终绘制好的效果如下图所示背景添加好了之后我们还需要添加一个声音音效,来模拟实现裁判员吹口哨的声音。操作方法:点击背景的声音标签,点击左下角从声音库中选择一个音效,我这边选的音效是(Referee Whistle),如下图所示 编写程序指令 开始编写程序之前我们可以将案例中需要用到的变量先定义好,从之前的案例分析中,我们可以看到,我们本次案例需要定义一个名次的变量,而且这个变量应该是所有角色公用的。 熊老师:点击小绿旗程序启动,执行后续程序模块
将熊老师在舞台上显示出来,主要是配合后面的隐藏角色使用
将熊老师的初始位置设定在舞台的中心点上X-0,Y-0
宣布运动会跑步比赛马上要开始
让所有运动员准备就绪
播放口哨声音,模拟比赛开始的哨声
将名次变量进行初始化,归零将熊熊老师隐藏,运动员开始跑步比赛
猫咪1: 点击小绿旗程序启动,执行后续程序模块设置猫咪的朝向 90度方向将猫咪移到跑到的起始位置X-200,Y-50;注意其它三个运动员的起始位置,他们在各自跑到的起点应该一样,也就是我们看到的X坐标值应该都是一样-200,不一样的是他们的Y坐标值等待我们裁判员熊老师宣布比赛开始回应裁判员熊老师,我们准备好了开始跑步,重复执行7-9的模块指令,可能有些小朋友会问,为什么不是执行7-12的模块呢,因为9号模块是条件判断模块,如果条件为真就会执行10-12模块,所以我们这边只要写重复执行7-9模块就可以了每次向前移动3、4、5、6、7、8中的其中一个步数,我们这边是设置的3-8的随机数,这样使我们的比赛更有趣味,因为我们并不知道每个运动员具体每次会走多少步,所以我们就不会知道谁会是第一个到达,这样使我们的比赛更加精彩时间戳,让我们在跑步的时候有一个短暂的间隔,更加真实判断是否到达终点,通过侦测模块的颜色检测来判断,如果碰到了我们的终点线那么执行10-12号模块指令将变量名次增加1说出我是第几名,由于这个几是不确定的,是我们的变量,所以我们要说出这样完整的一句,就需要通过连接指令将我们的文字和变量再将文字连接起来,形成完整的一句,比如我是第一名停止当前正在执行的这个脚本,并且不会影响到其它脚本的执行。 猫咪2: 点击小绿旗程序启动,执行后续程序模块时间间隔,等裁判员宣布开始之后,运动员开始比赛换成初始造型第一个造型(注意所有的运动员都只保留两个运动姿势造型,其它造型都删除)造型切换(重复执行5-6模块指令)时间间隔,两个造型之间需要有个短暂的等待切换到下一个造型 狗狗1: 点击小绿旗程序启动,执行后续程序模块设置狗狗的朝向 90度方向将狗狗移到跑到的起始位置X-200,Y40等待我们裁判员熊老师宣布比赛开始回应裁判员熊老师,我们准备好了开始跑步,重复执行7-9的模块指令,可能有些小朋友会问,为什么不是执行7-12的模块呢,因为9号模块是条件判断模块,如果条件为真就会执行10-12模块,所以我们这边只要写重复执行7-9模块就可以了每次向前移动3、4、5、6、7、8中的其中一个步数,我们这边是设置的3-8的随机数,这样使我们的比赛更有趣味,因为我们并不知道每个运动员具体每次会走多少步,所以我们就不会知道谁会是第一个到达,这样使我们的比赛更加精彩时间戳,让我们在跑步的时候有一个短暂的间隔,更加真实判断是否到达终点,通过侦测模块的颜色检测来判断,如果碰到了我们的终点线那么执行10-12号模块指令将变量名次增加1说出我是第几名,由于这个几是不确定的,是我们的变量,所以我们要说出这样完整的一句,就需要通过连接指令将我们的文字和变量再将文字连接起来,形成完整的一句,比如我是第一名停止当前正在执行的这个脚本,并且不会影响到其它脚本的执行。 狗狗2: 点击小绿旗程序启动,执行后续程序模块时间间隔,等裁判员宣布开始之后,运动员开始比赛换成初始造型第一个造型(注意所有的运动员都只保留两个运动姿势造型,其它造型都删除)造型切换(重复执行5-6模块指令)时间间隔,两个造型之间需要有个短暂的等待切换到下一个造型 兔子1: 点击小绿旗程序启动,执行后续程序模块设置兔子的朝向 90度方向将兔子移到跑到的起始位置X-200,Y130等待我们裁判员熊老师宣布比赛开始回应裁判员熊老师,我们准备好了开始跑步,重复执行7-9的模块指令,可能有些小朋友会问,为什么不是执行7-12的模块呢,因为9号模块是条件判断模块,如果条件为真就会执行10-12模块,所以我们这边只要写重复执行7-9模块就可以了每次向前移动3、4、5、6、7、8中的其中一个步数,我们这边是设置的3-8的随机数,这样使我们的比赛更有趣味,因为我们并不知道每个运动员具体每次会走多少步,所以我们就不会知道谁会是第一个到达,这样使我们的比赛更加精彩时间戳,让我们在跑步的时候有一个短暂的间隔,更加真实判断是否到达终点,通过侦测模块的颜色检测来判断,如果碰到了我们的终点线那么执行10-12号模块指令将变量名次增加1说出我是第几名,由于这个几是不确定的,是我们的变量,所以我们要说出这样完整的一句,就需要通过连接指令将我们的文字和变量再将文字连接起来,形成完整的一句,比如我是第一名停止当前正在执行的这个脚本,并且不会影响到其它脚本的执行。 兔子2: 点击小绿旗程序启动,执行后续程序模块时间间隔,等裁判员宣布开始之后,运动员开始比赛换成初始造型第一个造型(注意所有的运动员都只保留两个运动姿势造型,其它造型都删除)造型切换(重复执行5-6模块指令)时间间隔,两个造型之间需要有个短暂的等待切换到下一个造型 小马1: 点击小绿旗程序启动,执行后续程序模块设置小马的朝向 90度方向将小马移到跑到的起始位置X-200,Y130等待我们裁判员熊老师宣布比赛开始回应裁判员熊老师,我们准备好了开始跑步,重复执行7-9的模块指令,可能有些小朋友会问,为什么不是执行7-12的模块呢,因为9号模块是条件判断模块,如果条件为真就会执行10-12模块,所以我们这边只要写重复执行7-9模块就可以了每次向前移动3、4、5、6、7、8中的其中一个步数,我们这边是设置的3-8的随机数,这样使我们的比赛更有趣味,因为我们并不知道每个运动员具体每次会走多少步,所以我们就不会知道谁会是第一个到达,这样使我们的比赛更加精彩时间戳,让我们在跑步的时候有一个短暂的间隔,更加真实判断是否到达终点,通过侦测模块的颜色检测来判断,如果碰到了我们的终点线那么执行10-12号模块指令将变量名次增加1说出我是第几名,由于这个几是不确定的,是我们的变量,所以我们要说出这样完整的一句,就需要通过连接指令将我们的文字和变量再将文字连接起来,形成完整的一句,比如我是第一名停止当前正在执行的这个脚本,并且不会影响到其它脚本的执行。 小马2: 点击小绿旗程序启动,执行后续程序模块时间间隔,等裁判员宣布开始之后,运动员开始比赛换成初始造型第一个造型(注意所有的运动员都只保留两个运动姿势造型,其它造型都删除)造型切换(重复执行5-6模块指令)时间间隔,两个造型之间需要有个短暂的等待切换到下一个造型 案例效果 案例演示【Scratch案例演示】萌宠乐园运动会跑步