第8课 喵喵运动会
Last updated
Last updated
马上举办校园运动会了,小狗“小白”和“小蓝”都名参加跑步比赛,“喵喵”将是这个项目的裁判。
在本课的范例作品中,单击“喵喵”角色,“小白”和“小蓝”开始向舞台右侧方向奔跑。当遇到终点线时,停止前进,同时由“喵喵”宣布它们到达终点的消息。
可以使用Scratch中的“广播”功能来完成本课任务:单击“喵喵”后,由“喵喵”广播“起跑”消息,运动员角色在收到消息后起跑,并在到达终点线时广播“到达”的消息。
在运动员是否到达终点线的判断上,可以使用Scratch中的颜色触碰检测方法进行判别。此外,还可以使用随机数指令随机产生运动员的移动速度,从而使比赛更精彩。
要完成本课的创意构思,需要了解以下的新指令:
在Scratch中,“广播”是非常重要的一个功能。每个广播都有“消息名称”,Scratch通过消息名称来区别不同的广播。Scratch的舞台和角色都能够发送广播,每个广播发送后,能被所有对象(包括广播的发送者)接收。
比如下图中的“喵喵”、“小白”和“小蓝”三个角色,如果已经编写了当“小白”和“小蓝”接收到“起跑”的消息后,开始向终点线方向移动的脚本。那么当“喵喵”广播“起跑”消息后,所有角色,包括“喵喵”自己,都会收到这条消息;其中“小白”和“小蓝”由于事先编写了相应的脚本,因此会向终点线移动。
单击此处或者扫描下方二维码可以观看以上内容相关的视频。
1.
属于“事件”类别指令,通过指令广播一条消息;单击下拉列表参数,可以选择需要广播的消息名称;单击其中的“新消息”选项,可以在打开的对话框中新建消息名称。
2.
属于“事件”类别指令,当接收到指定消息后,能够触发指令,执行指令下方的脚本;单击下拉列表参数,可以选择触发指令的具体消息名称。
3.
属于“侦测”类别指令,用于侦测角色是否碰到指定颜色;单击指令的颜色参数,当鼠标指针变成
时,移动鼠标在需要的颜色上单击,指令中的颜色参数会变成指定的颜色。
4.
属于“控制”类别指令,Scratch循环指令中的一种;在满足条件之前,重复执行指令中所包含的脚本;指令中的参数就是停止的条件。
本课范例中的舞台背景图片是一条赛道,上面有起跑线和终点线。其中,终点线的颜色还将被用作角色是否到达终点的判断条件。可以在“背景”选项卡中绘制这条赛道:
1.单击“背景列表区”中的缩略图,再单击进入“背景”选项卡;然后单击右下角的
按钮,进入“矢量模式”。
2.单击选中“矢量工具按钮”中的
按钮,再单击选中“颜色”区域的
及“填充模式”中的
最后在“背景编辑区”拖动鼠标,画出红色矩形赛道。
3.单击选中“矢量工具按钮”中的
按钮,再选中“颜色”区域的
设置合适的线宽,最后按住键盘上的“Shift”键,在“背景编辑区”赛道的左边拖动鼠标,画出一条蓝色线条,作为起跑线。
4.重新选择颜色为
还是按住键盘上的“Shift”键,在赛道的右边拖动鼠标,画出一条黄色线条,作为终点线。
单击此处或者扫描下方二维码可以观看以上内容相关的视频。
本课范例作品中的三个角色,除了默认的小猫以外,另外两个“Dog1”和“Dog2”角色可以从Scratch的“角色库”选取,再把这三个角色重命名为“喵喵”、“小白”和“小蓝”,然后调整三个角色的大小,把它们拖放到合适的位置。
单击此处或者扫描上方的二维码可以观看以上内容相关的视频。
首先为小猫“喵喵”编写脚本,使它能够向两个运动员广播“起跑”消息:
1.单击选中小猫“喵喵”角色,将“事件”类别中的
指令拖动到脚本区,然后再将
指令拖动到脚本区与前一个指令组合。
2.单击
指令的下拉列表参数,选中“新消息”选项,在打开的“新消息”对话框中输入消息名称为“起跑”。
单击此处或者扫描上方的二维码可以观看以上内容相关的视频。
两只小狗运动员接收到“喵喵”广播的“起跑”消息后,应该开始向舞台右侧的终点线移动,并在碰到终点线时停止前进。具体可以按以下步骤操作:
1.为了让
指令能够对“是否碰到了终点线”这个条件进行检测,需要将指令中的颜色参数设置成与终点线颜色相同:先单击指令中的颜色参数,然后将鼠标移动到终点线上单击,这样,指令的参数颜色就与终点线相同。
2.还可以使用
指令,让“小白”每次比赛都拥有不同的速度。
“小白”完整的脚本如下图所示:
“小蓝”的脚本与“小白”相同,可以采用复制粘贴的方法编写。
单击此处或者扫描下方二维码可以观看以上内容相关的视频。
在“侦测”类别中,与
指令功能类似的还有
这两个,你知道这两个指令起什么作用吗?
单击此处或者扫描下方二维码可以观看相关视频。
当“小白”和“小蓝”在到达终点后,应该分别发送到达终点的消息。这样,才能让“喵喵”知道谁到达终点:
1.单击选中“小白”,将“事件”类别中的
指令拖动组合到脚本区,作为最后一条指令;再单击指令的下拉列表参数,选中“新消息”选项,在打开的“新消息”对话框中输入消息名称为“小白到达终点”。
2.再单击选中“小蓝”,按照以上的步骤添加指令,并设置指令的参数为“小蓝到达终点”。
小猫“喵喵”接收到来自“小白”和“小蓝”发送的消息后,可以按以下步骤操作,宣布相应的到达信息:
1.单击选中小猫“喵喵”,将“事件”类别中的
指令拖动到脚本区,在下拉列表参数中选择“小白到达终点”。
2.将“外观”类别中的
指令拖动组合到上一条指令下方,修改指令的第一个参数为“小白已经到达终点”。这样,当“喵喵”接收到“小白到达终点”这个消息的时候,会宣布“小白已经到达终点”。
3.复制这段脚本,修改第一个指令的参数为“小蓝到达终点”,第二个指令的第一个参数为“小蓝已经到达终点”。这样,“喵喵”会宣布“小蓝已经到达终点”。
单击此处或者扫描下方二维码可以观看以上内容相关的视频。
按照以上步骤所编写的程序脚本,运动员到达终点以后,“喵喵”只会宣布运动员到达的消息。你能够编写程序,让“喵喵”还能够根据比赛情况,宣布运动员的比赛成绩吗?
单击此处或者扫描下方二维码可以观看以上内容相关的视频。
校园运动会结束了,“喵喵”还不满意,你能编写程序,让比赛更精彩吗?