2.3 魔法钢琴
学习了编程的顺序结构之后,让我们一起来看一个新的故事吧。
背景:doily,hearts,light
角色:1-Grow,2-Grow,3-Grow
故事:这是一架带魔法的钢琴,弹奏音符的时候不仅有美妙的声音、神奇的变化,还有奇幻的背景。
玩法要求:
按键盘上的1,2,3键,弹奏出do,re,mi的声音,发音的时候,音符会变大一下又变回原样,每个音符发音时有不同的背景。
现在,让我们一起来看一下这个故事是怎么实现的。
首先,打开Scratch,从背景库和角色库中选出我们需要的背景和角色。
在背景库中,我们要选出三个背景。但这时候,舞台上只能看到一个背景(见图2-5)。
图2-5 魔法钢琴
思考一下
如何查看自己一共添加了几个背景呢?
如图2-6所示,首先选中舞台背景,然后单击脚本旁边的背景,这时看到的背景就是你已经成功添加的背景。可以看到此时背景区有三个背景,角色区有三个角色。完成这一系列准备工作后,就可以开始你的音符编程之旅了。
图2-6 查看背景
以角色1-Grow为例,我们一起来分析这个角色的动作。
角色的程序可以分为以下几部分。
1)程序运行的起点:当按下1键。
2)角色的大小变大。
3)背景切换到角色1的背景。
4)发出do的声音。
5)角色的大小变小。
接下来分步骤介绍。
1.程序运行的起点:当按下1键
在前面的内容中我们学习过“当被点击”命令。在这个故事中,按下键盘上的1键,角色开始有动作,因此,我们用一个新的程序起点,如图2-7所示,在事件中有一个命令叫作“当按下空格”。
图2-7 当按下空格
注意,此时“空格”这个地方是可以更改的,单击空格旁边的黑色小三角,可以看到图2-8所示的命令,这时候可以更改,我们将它改为“当按下1”,表示此时程序开始的开关是按键1。
图2-8 修改按键控制程序的起点
2.角色的大小变大
我们看一下有哪些命令能够改变角色的大小。在脚本的外观中有两个命令可以改变大小,一个是“将角色的大小设定为”,另一个是“将角色的大小增加”,如图2-9所示。
图2-9 改变角色大小的命令
思考一下
这两个命令有什么区别呢?
回答:“将角色的大小设定为100”是指给这个角色规定一个固定的大小,这个大小是确定的,无论之前角色的大小是多少,在运行这个命令之后,角色的大小都会变为100。
“将角色的大小增加10”是指在当前角色大小的基础上进行改变,希望角色变大就输入一个大于零的数,希望角色变小就输入一个小于零的数。
提示
命令中“10”和“100”的位置,可以通过键盘输入改变具体数字。
如何让角色的大小变大呢?我们可以采用两种方法来实现。
方法一:首先将角色的大小设定为100,之后再将角色大小设定为200。因为两次设定的大小不同,第二次大小的设定要大于第一次大小的设定,因此角色大小发生了改变,如图2-10所示。
图2-10 第一种改变角色大小的方法
细心的你有没有发现这两个命令运行后角色大小并没有变化呢。这是因为计算机程序运行得非常快,在你按下键盘上的数字1后,角色的大小飞快地改变了两次,这时候因为我们肉眼辨识能力有限,所以看不到角色大小的变化过程,以为是程序没有起作用。
思考一下
程序运行过快有什么解决办法吗?
在生活中如果遇到说话很快的人,快到听不清他在说什么,我们是不是通常会让他说慢一点,慢到你可以理解他说的每一句话。同样,在这里我们也可以让计算机程序运行得慢一点。我们不能改变计算机每条命令运行的速度,但是可以在程序运行的中间让它稍微等一会。如图2-11所示,在控制中有一个命令叫作“等待1秒”,我们把这个命令放在这两个命令中间。这次再运行一下,你看到角色的大小变化了吗?
图2-11 改进后的改变角色大小的方法
方法二:直接使用“将角色的大小增加”的命令,如图2-12所示。
图2-12 第二种改变角色大小的方法
3.背景切换到角色1的背景
如图2-13所示,在脚本的外观中,有一个命令叫“将背景切换为”,命令的背景名称旁边有一个黑色的小三角,点开之后有你添加的所有背景的名字,选择角色1的背景的名称。
4.发出do的声音
如图2-14所示,在脚本的声音中,有一个命令叫“弹奏音符60/0.5拍”,“60”的旁边有一个黑色的小三角,点开之后是一个钢琴键盘,选择do的声音。
图2-13 切换背景
图2-14 弹奏声音do
思考一下
如果先发出do的声音,再切换背景,会对结果产生影响吗?你可以尝试一下更改两个命令的运行顺序,看看会不会对结果产生影响。
5.角色的大小变小
角色大小变小的方法和角色大小变大的方法一样,只是命令中的数字发生了改变。我们依然有两种方法实现。
方法一:使用角色大小设定的方法(见图2-15)。
图2-15 第一种角色大小变小的方法
方法二:使用角色大小增加的方法,注意,角色大小减少时,输入一个小于零的数字,在数字前面加一个减号“-”,表示这个数字小于零(见图2-16)。
图2-16 第二种角色大小变小的方法
这样我们就把角色1-Grow的动作一步步分解完成了,接下来要做的就是将这些分解的命令按运行顺序连接在一起。组合完成之后,按下键盘上的数字1,舞台上角色1-Grow实现它的任务了吗?
同样的方法完成角色2-Grow和3-Grow的程序。
现在试一试,你的钢琴开始它的魔法演奏了吗?
注意
完整的程序会附在本章内容的最后一部分,如果你在这个程序中还有什么地方存在问题,可以去本章的最后查看完整的程序代码。