《儿歌弹奏》用Scratch弹奏儿歌
第一部分 作品预览
《儿歌弹奏》操作指南:
1、点击绿旗,开始弹奏;
2、滑块落在哪个按键上,就按下哪个数字键;
3、可以在滑块的代码里更换乐器种类;
4、导入新的按键列表和节拍列表,可以更换歌曲。

作品下载链接:
(源代码)链接:https://pan.baidu.com/s/1nH0aqrWfOEgIFpt5R94xtw?pwd=36m6
提取码:36m6
(改良版)链接:https://pan.baidu.com/s/1sDtj9C26jgQS3Mv2z4AApw?pwd=sw8q
提取码:sw8q
第二部分 任务解读
一、解读键盘角色:
键盘角色的主要作用就是摆放数字按键,每一个按键上摆放一个数字,需要执行的唯一任务就是初始化操作:设定好大小、位置以及方向,可以根据个人喜好进行调整,也可以参照源码进行设置。
注意:Scratch默认是没有加载音乐模块的,需要我们自己点击左下角的“添加拓展”按钮,然后在新的窗口界面中,点击“音乐”模块(第一个),这样就添加好了音乐模块。
二、解读滑块角色:
滑块角色就像指挥棒一样,落在哪个按键上,就得及时按下相应的按键,按早了、按晚了或者按错了,都不会弹出声响。滑块角色主要有以下四项任务:
1、初始化任务:程序开始之后,设定滑块大小,并且将显示状态设置成隐藏;然后设置乐器类型(默认是钢琴),将演奏速度设置成80(演奏快慢可以根据自身水平调节);最后将得分(用于统计分数)变量设为0,将序号(用于标识弹奏进度)变量设为1。
2、克隆任务:虽然滑块角色只有一个,但是可以同时出现多个滑块,这种场景,通常使用克隆实现。在实际操作中,每落下一个滑块,就得按下一个按键;逆向思考一下:只要有按键需要按下,就得出现滑块,所以,克隆滑块的数量由按键数量决定。
在执行克隆操作之前,创建三个列表:按键、节拍和音符。参照乐谱(网络自行搜索),将按键依次存入按键列表中(按键0表示停顿),将节拍存入节拍列表中(这里设定1拍停顿1秒,半拍停顿0.5秒,以此类推);这里使用C调,音符从60开始,依次存入音符列表,具体设定可以参考源码。
下面使用循环积木块遍历按键列表,在循环体内,需要判断一下:如果按键等于0,表示停顿,否则,克隆一个滑块,然后等待相应的节拍,为了精准控制克隆体,在克隆之前,将私有变量“克隆体编号”的值设置为变量“序号”’,每轮判断之后,将变量“序号”增加1。
3、下落任务:作为克隆体启动之后,滑块开始不断下落,竖直下落很容易实现,问题是:怎么把滑块放到对应的数字按键上方?这里需要用到一个简单的算法来确定X-坐标:-240 + 按键的“序号”项 * 60,Y-坐标设为180。当滑块接触到键盘的时候,减缓下落速度,同时编写消失代码
4、弹奏任务:当滑块下落到键盘上方刚与键盘接触的时候,按下相应的数字键,开始演奏相应的音符。
三、解读数字角色:
数字角色总共有三项任务:
1、初始化操作:开始之后,设定大小、方向、造型、显示状态,将“数字”变量设为1。
2、克隆自己7次:每次克隆之后,弹奏一下对应数字的音符,然后将X-坐标增加60。
3、按键效果:当作为克隆体启动之后,判断自己是否被按下,设置一下显示特效(根据个人喜好设定)。
第三部分 代码编写




第四部分 探究与改良
一、效仿已有的按键列表和节拍列表,存入新的乐谱,弹奏一下。
二、作品中存在得分变量,但是没有计分操作,如果按对一个键得10分,按错一个键扣5分,该怎么完善代码?动手试一下!
✎ 编 者 寄 语
关于探究改良部分,希望大家认真思考!本文提供的作品源码及改良源码仅供参考,期待大家探究更优的改良程序!
加油吧,后浪!
< 完 >
