#少儿编程#
我们使用列表来演奏曲目。有了列表,我们就可以自己创建曲子,编辑曲子了。但是,一首曲子输入到列表里,也不容易,我们当然希望输入好的曲子能够反复利用。所以如果我们写好的曲子也想应用到别的程序里,要怎么做呢?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)。
图91、分析任务要求
任务角色:角色用Butterfily1
任务背景:背景用forest背景图
任务内容:
创建音符列表和节拍列表,直接导入梁祝曲目乐曲响起,蝴蝶就在草丛中飞乐曲停止,蝴蝶就停下2、程序设计
针对舞台forest的程序设计:
音乐的播放由舞台这个编程对象来完成。当程序运行时,舞台首先设置好乐器和演奏速度,然后发布广播“音乐开始”,之后就播放乐曲,播放结束后,发布广播“音乐停止”。
针对角色Butterfily1的程序设计:
当角色接收到“音乐开始”的广播后,角色蝴蝶就开始在舞台上不断切换造型,并上下飞舞,直到接收到“音乐停止”的广播后,蝴蝶停下。
程序流程图如图10:
图103、Scratch编程实现
第一步:设置舞台背景
在舞台背景设置区,点击“选择背景”图标,在背景列表中选择forest背景图(图11)。
图11第二步:设置角色
在角色设置区,点击“选择角色”图标,在角色列表中选择Butterfily1角色(图12),然后在角色设置区把大小调成50,以符合舞台的大小。
图12第三步:编程
首先编写舞台forest的程序。点击舞台背景设置区的图片,将该背景设为当前编程对象(图13)。
图131)创建列表
①创建两个列表:音符和节拍(图14)。
图14②把曲子的音符和节拍列表导出成txt文件,然后分别导入新建的这两个列表里(图15)。
图15③新的列表创建好,列表前面的复选框是勾上的,并且会在舞台区显示出来,如图15。把节拍列表和音符列表前面的复选框里的勾去掉(图16),这样舞台区就不会显示列表了。
图162)创建变量
我们需要有一个变量来记录我们已经演奏到第几个音符了,创建变量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