毕业论文
您现在的位置: 钢琴 >> 钢琴发展 >> 正文 >> 正文

Scratch编程25曲谱的重复利用之列

来源:钢琴 时间:2025/2/24
北京中科白癜风医院在哪 http://www.txbyjgh.com/m/

#少儿编程#

我们使用列表来演奏曲目。有了列表,我们就可以自己创建曲子,编辑曲子了。但是,一首曲子输入到列表里,也不容易,我们当然希望输入好的曲子能够反复利用。所以如果我们写好的曲子也想应用到别的程序里,要怎么做呢?Scratch的列表提供了导入和导出功能,这两个功能能够实现我们的想法。

技能1:列表的导出

所谓导出,就是将现有的列表内容存成一个文件。

①右键点击要导出的列表,然后会弹出一个菜单(图1)

图1

②点击“导出”项,会弹出保存文件的窗口(图2)。

“文件名”:给导出的文件起个名字(图2中红色箭头指的输入框),默认是列表的名字,你可以就用这个名字,也可以另外起一个。“保存类型”:Scratch规定是保存成txt文件,不能更改。txt文件是通用的文本文件。图2红框处是保存的路径,你们自己要记住保存的位置。如何保存文件我在一开始的几篇就有说过了。

图2:保存文件

注意:我们写的程序创建了两个列表,音符和节拍列表,这两个列表组成了一首曲子,所以我们导出列表也要把这两个列表都导出来。

我们在文件夹里找到我们刚才导出的音符和节拍文件(图3)

图3:

分别双击这两个文件,我们可以看到文件的内容,图4是打开的音符文件和节拍文件的内容和格式。

图4

如果我们想修改内容,可以直接在文件里修改,再导入到列表里。

技能2:列表的导入

所谓导入就是把txt文件的内容放进列表里。

①先创建一个名为“音符”的列表

②右键点击刚创建的列表,会弹出一个菜单(图5)

图5

③点击“导入”项,会弹出选择文件的窗口(图6)。点击你要导入的文件,“文件名”处(图6红色箭头指向)就会有你要导入的文件名。

图6

④点击“确定”按钮,txt文件里的内容就导入到列表里了(图7)

图7

技能3:删除列表

右键点击变量模块里的列表变量,比如我们刚才创建的“音符”列表,在弹出的菜单里单击“删除音符列表”(图8),这个列表就删掉了。

图8

做一个配乐小动画,曲子就用练习的梁祝,乐曲响起,两只蝴蝶在草丛上飞(图9)。

图9

1、分析任务要求

任务角色:角色用Butterfily1

任务背景:背景用forest背景图

任务内容:

创建音符列表和节拍列表,直接导入梁祝曲目乐曲响起,蝴蝶就在草丛中飞乐曲停止,蝴蝶就停下2、程序设计

针对舞台forest的程序设计:

音乐的播放由舞台这个编程对象来完成。当程序运行时,舞台首先设置好乐器和演奏速度,然后发布广播“音乐开始”,之后就播放乐曲,播放结束后,发布广播“音乐停止”。

针对角色Butterfily1的程序设计:

当角色接收到“音乐开始”的广播后,角色蝴蝶就开始在舞台上不断切换造型,并上下飞舞,直到接收到“音乐停止”的广播后,蝴蝶停下。

程序流程图如图10:

图10

3、Scratch编程实现

第一步:设置舞台背景

在舞台背景设置区,点击“选择背景”图标,在背景列表中选择forest背景图(图11)。

图11

第二步:设置角色

在角色设置区,点击“选择角色”图标,在角色列表中选择Butterfily1角色(图12),然后在角色设置区把大小调成50,以符合舞台的大小。

图12

第三步:编程

首先编写舞台forest的程序。点击舞台背景设置区的图片,将该背景设为当前编程对象(图13)。

图13

1)创建列表

①创建两个列表:音符和节拍(图14)。

图14

②把曲子的音符和节拍列表导出成txt文件,然后分别导入新建的这两个列表里(图15)。

图15

③新的列表创建好,列表前面的复选框是勾上的,并且会在舞台区显示出来,如图15。把节拍列表和音符列表前面的复选框里的勾去掉(图16),这样舞台区就不会显示列表了。

图16

2)创建变量

我们需要有一个变量来记录我们已经演奏到第几个音符了,创建变量i(图17)。

图17

注意:以背景为编程对象,所创建的变量和列表都是全局变量。

3)编程实现播放乐曲

根据前面程序设计的思路,播放乐曲由舞台背景来执行,代码如图18

图18

①当程序运行时,设置演奏乐曲为钢琴,演奏速度为90

②初始化变量i,变量i是用来记录已经演奏第几个音符了,初始值设为0

③发布广播“音乐开始”

④使用控制模块里的循环体来重复执行演奏积木,循环的次数为音符列表的项目数,就是音符的个数

⑤每次循环,变量i就加1,然后演奏第i个音符

⑥直到执行的次数为列表的项目数,就结束循环,然后发布广播“音乐停止”。

然后编写角色Butterfily1的程序。点击角色设置区的Butterfily1角色,将该角色设为当前编程对象(图19),注意要把角色的大小设置为50。

图19

代码如图20:

图20

①当角色Butterfily1接收到“音乐开始”的广播时,首先移到舞台中央

②然后切换造型,并且移动到另一个地点,实现蝴蝶飞舞的目的。每次移动是在现有位置的上下左右20的范围内。

图21

③一直重复执行②

④当角色Butterfily1接收到“音乐停止”的广播,就停止脚本

最后再复制一个角色Butterfily1由于是两只蝴蝶在飞,所以再复制一个Butterfily1角色,并且设置角色的颜色。右键点击Butterfily1角色,弹出菜单,选择“复制”项(图22)。

图22

角色设置区就会多出一个一模一样的Butterfily1角色,连代码都一样(图23)。

图23

由于需要颜色不一样,我们就在这个新复制的角色的代码上添加“设置颜色”的积木(图24红框处)。

图24

第四步:保存程序

现在我们知道通过列表的导入导出功能,我们可以在不同的程序文件间共享一些内容,比如在这个例子里,我们辛辛苦苦写的乐谱,就可以导出成txt文件,供其它程序使用。

我虽然不懂音乐,但是也玩过录音软件,很多录音软件是有音轨的。那如果我想用Scratch来实现多音轨呢,比如加点其它乐器,或者二重奏什么的,那要怎么实现呢?我会来说一下。

原创不易,请勿抄袭。欢迎大家

转载请注明:http://www.0431gb208.com/sjszyzl/8747.html

  • 上一篇文章:
  • 下一篇文章: 没有了