又到了一周一度的教女儿编程的时间,今天我要教她用Scratch把电脑键盘变成她喜欢玩的乐器。
女儿会弹钢琴,那么我就用钢琴举例子。
说到钢琴,其实我女儿是我的钢琴老师。她以前教我很用心,但是我学的不好。
表面原因是我不懂谱,弹起来也就不靠谱。
深层原因是我动机不纯,打着学钢琴的幌子约会(对,和女儿约会,看不懂的去看“第1小时” ⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄)。
记不住该弹哪个键,节奏不行,指法不行。我想很多人都有这样的问题。
不用灰心!在这编程的世界里,我们可以把这些问题统统消灭掉!!!
指法不行?我有10年的按键盘经验!
节奏不行?Scratch可以用数字设置节奏!
记不住该弹哪个键?我可以在Scratch自动设置好顺序!
总之,有了Scratch,弹钢琴变得so easy!女儿再也不用担心我的学习!
言归正传,视频要接通了!
看到女儿圆圆的小脸蛋,我就想笑,“乖女儿,今天你想不想弹钢琴啊?”
女儿撒娇说,“但是我身边没有钢琴啊/”
我就告诉她,“今天我教你用Scratch把电脑变成一台钢琴吧?”
女儿说,“我以前就知道可以编程作曲,我这就打开Scratch!”
等她打开Scratch,点击Create按钮,进入到我们常见的编程区域,我就让她先体验一下脚本里的“声音”按钮,“你先体验一下“声音”按钮吧,先把事件里的‘当绿旗被点击’拖到代码区,再点击'声音'按钮,把‘播放声音meow’这个块放在下面。”她应该是这样写的代码:
“弄好啦,我点击绿旗看看。” 她点击鼠标,视频那边就传出一声猫叫,“还真的有声音!”
我鼓励她,“是不是很简单啊,那么做钢琴也很容易哦。”
她问我,“那要怎么做呢?快告诉我!”
我把接下来要做什么告诉她,“接下来我们先变魔法,把一台钢琴变到舞台上来。”
她打断我,“这么神奇?怎么变怎么变?”
小朋友都这样充满好奇心,我开始指导她,“哈哈,来吧,我们开始变魔术!”
我接着告诉她,“你看“角色”区域,点击新建角色的那个小娃娃按钮,就是左边第一个,这里是Scratch的角色库,有很多很多不同类型的橘色,你点击“物品”,然后下拉,看到那个钢琴了吗?名字是piano。”
她回答我,“你等会儿啊,我找找,钢琴,piano,钢琴。。。找到啦!我知道,点击钢琴,再点确定!”
我肯定她的努力,“对的,就是这样!”
过程如下:
然后我告诉她,“你去看看钢琴里有什么宝贝啊,你点击“角色”区域的钢琴,再点击“脚本”右边的“声音”按钮。看到什么啦?”
她的回答是,“看到好多喇叭,还有冲击波状的东西,那些是振动吧,我学过,声波也是振动!” 对,就是下图这样:
然后我告诉她,“为了让键盘和钢琴之间有联系,你需要‘脚本’里的‘事件’按钮里的指令。这样,你把‘当按下空格键’这个块拖到代码区域,然后把‘声音’里的‘播放声音’这个块放到它下面。”
“为了方便你操作,你把长方形里的空格键改成1。”
我又告诉她,“然后你不需要重新弄,对于多次重复的代码,你只需要右键点击代码,选择复制就可以啦。记得把复制代码里的1改成2,C piano改成D piano。” 过程应该是这样的:
她通过视频把电脑屏幕给我看,我确定没问题,让她以此类推得到如下的代码:
她尝试地按1到8之间的数字键,告诉我,“真的有声音啊!好有意思!”
我问她,“是不是很简单啊?”
她很开心,说,“是啊,不过钢琴没什么动静,如何让钢琴也有反应呢?”
我告诉她,“这也不难,你只需要点击钢琴,把外观里的‘将颜色特效设定为0’这个块拖到‘播放声音’块的后面,再改改里面的数字就可以啦。”她给我看了她的代码:
这时候再按1到8之间的数字,就会出现这样的效果:
我让她玩了一忽儿,就给她提出下个任务,“会玩了吧?哈,现在让我们来作曲吧!”
她有点犯萌了,“什么!我没有谱啊!那我先去搜一搜~”
我连忙告诉她,“不用啦!我已经给你准备好啦!看爸爸对你多好!”
她被我占了这么多次便宜,也就无所谓了,只是依然笑着,等我的指挥。
我告诉她,“你现在按第一节,听好啦,1-1-2-1-4-3。”
她照做了,“啊哈!这是祝你生日快乐!”
我有点沮丧,“好吧,你这么快就听出来啦!”
她说,“没有啊,你接着说!”
明明就是有!哼!
我告诉她,“然后第二节,按1-1-2-1-5-4;”
“第三节是1-1-8-6-4-3-2;”
“最后一节是7-7-6-4-5-4!”
“好啦,你把这四节连起来弹弹看。”
她告诉我,“你等会儿啊,我拿笔记记数字。”
为了有一种弹钢琴的感觉,我让她把“键盘”角色放在舞台上,“现在你把键盘放上舞台,点击‘新建角色’的小娃娃按钮,选择‘物品’,再选择里面的‘Piano-Electric’,就完成啦。”
我告诉她,“现在我教你怎么把钢琴的代码复制给键盘,这样我们就不用重新写啦。”
“你只要把钢琴角色里的一段代码复制,然后移动到角色区域里的键盘上方,点击鼠标左键就可以啦。”
她照做了,告诉我,“可是点完就没了,什么都没发生啊!”
我笑了笑,“那你点击角色区域里的键盘看看。”
她照做了,然后就惊呼,“代码真的复制过来了!好神奇!”效果是这样的。
我又让她以此类推,把代码全部复制过来,再去掉所有的“将颜色特效设定为”的代码块。键盘角色就得到如下的代码:
我接着跟她说,“因为我们要按钢琴键盘的效果,而键盘是有其它造型的。所以你把‘外观’按钮里的‘下一个造型’块放到所有‘播放声音的代码下面,这样我们在按数字的时候,键盘就会变换造型,让你觉得你在弹钢琴。”
键盘的造型在这里:
下面是给键盘变换造型的代码:
然后我们点击1到8之间的数字,就可以让钢琴变色,并且键盘也有特效。效果如下:
这些都告一段落了,我跟她提出做最后一个项目,“接下来呢,我们一起看看怎么预先设定一段谱,让电脑自己去弹奏!”
她说,“好啊,那我就学会用Scratch编曲了!”
我让她把舞台布置好看一些,比如点击舞台区域(在角色区域左边)里的“新建背景”按钮:
选择“主题”下面的“音乐和舞蹈”,
最后选择"Stage1",点击“确定”按钮:
就接着教她探索,“在‘舞台’里,你把‘事件’按钮里的‘当绿旗被点击’拖到代码区域,再把‘声音’按钮里的‘弹奏音符60 0.5拍’这个块放到它下面。” 过程如下:
她告诉我,“我点击这个数字60,发现,原来60对应的是中央C键,每个键都和一个数字一一对应啊!”
我就问她,“这是不是非常方便编曲啊!”
她专注着电脑,貌似没听见。
我接着告诉她,“再看看‘设定乐器为1’这个指令。如果点击1,我们会看到一长串列表,里面告诉我们Scratch可以模拟很多不同的乐器。”
她挨个看那些名字,一边念出来,“钢琴,电子琴,风琴,吉他,电吉他。。。想不到Scratch这么厉害!这下有得玩了!”
我告诉她,“现在我们看祝你生日快乐那首歌的第一节,我们在电脑键盘上输入的‘1-1-2-1-4-3’对应的就是钢琴的‘C-C-D-C-F-E’,那么在Scratch里也就是‘60-60-62-60-65-64’。这种转换关系要弄清楚哦。”
她已经有点蒙圈了。。。“等等!我算算啊。。。”
我看着她拿着手指头开始比划,一边翻翻白眼,过了大概1分钟,她好像终于搞明白了,“我懂啦,是‘电脑键盘到真实钢琴再到Scratch’这样的顺序!”
最后她给出了她把“祝你生日快乐”这首歌的Scratch代码,并且演奏给我看。代码如下:
最后,她发现,虽然有音乐的声音,但是钢琴和键盘完全没动静。
她问我,“怎么让钢琴和键盘也跟着预先设计好的音乐动起来呢?”
我告诉她,“我今天没计划这个,下次再教你吧!”
她急了,“教教我嘛,小气!”
我哈哈大笑,“哈哈,其实呢,这也很简单,你点击舞台,再写一段代码。”
“依然是先写‘当绿旗被点击’,然后在‘事件’按钮里找‘广播消息1’这个块放在它下面。这个代码块很有用,是告诉所有其他人消息的,相当于传令官!对了,你最好把‘消息1’改成别的你一下就能明白的‘消息’。”
她说,“那我改成‘开始’吧。”
我调侃她,“你开心就好!哈哈!然后你点击钢琴,让它接收消息。”
我女儿问我,“是不是放‘事件’里的‘当接收到开始’?”
我很高兴,“是啊,就是这么简单!然后放‘将颜色特效增加25’,你可以随意设置数字。不过为了一直变换效果,最好加上‘重复执行’指令块。”
对于键盘,过程是类似的,就不多说了。代码如下:
最后点击“绿旗”就可以听着生日快乐歌,并且看到这样的效果啦!
女儿高兴地用手给我比了个胜利的V字,“耶!原来这些都这么简单!”
我也很满足,“好啦!这次课就结束啦!”
女儿问我,“下次课我们学什么啊?”
我告诉她,“你已经学会了如何控制角色移动,如何画画,如何导入声音,下次我就教你怎么利用这些做一个小游戏吧!”
女儿一听说做游戏,很开心地比了两个胜利的V字,并对我欢呼,“耶!耶!”
好啦,这1小时就结束啦,总结一下,我教会我女儿怎么让键盘和Scratch有互动,从而做一些简单的弹钢琴和编曲的任务,希望我的教程对大家有帮助!下1小时,我会教我的女儿怎么用Scratch做一个小游戏,会用到之前三次课学到的东西,也会有新的玩法出现。敬请期待!
附上项目网址
https://scratch.mit.edu/projects/114235183/
转载请注明:来自微信公众号“君君玩科技”。