教学原文参考:音阶记忆游戏
这篇文章会介绍,使用 Scratch 3 里的音乐扩充功能,搭配变数、清单、函式、逻辑判断、广播讯息、重复、尺寸、字串组合...等积木,实作一个有趣的 Do、Re、Mi、Fa、So 音阶记忆游戏。
在角色编辑区,使用绘画,加入五个不同颜色「圆形」的新角色,五个圆形分别表示 Do、Re、Mi、Fa、So ( 参考:造型与绘图 )。
将角色在舞台上排列成下图的样子。
点击「猫咪」角色,建立四个变数和三个清单:
点击绿旗时,将音阶数和 go 的变数都设为 0,并让猫咪说出「点我,开始游戏吧!」。
点击角色时,判断如果音阶数等於 0,就广播「开始」的讯息。
为什麽要使用逻辑判断和广播讯息?因为如果直接将程序放在点击角色里,会在重复点击角色时,发生预期外的状况,所以使用广播讯息来避免例外状况发生。
将 list 清单勾选显示在舞台上,点选清单的「+」号,增加 60、62、64、65、67 五个项目,分别代表对应的音阶,完成後再将清单取消勾选,在舞台上隐藏。
注意,这个步骤很容易被忽略。
建立一个「建立题目」的函式,建立音阶题目:
为什麽要使用「无条件舍去」,因为待会在作答之後,会将音阶数增加 0.5,让音阶数量是 3、3、4、4、5、5...的规律,所以使用无条件舍去,如果希望是 3、4、5、6 的规律,就不需要使用无条件舍去。
再建立一个「听声音」的函式,播放题目的音阶,并加入音乐的扩充功能:
编辑收到「开始」讯息时的程序:
编辑收到「next」讯息时的程序 ( next 讯息会在「判断答对」之後发出 ):
编辑收到「gameover」讯息时的程序 ( gameover 讯息会在「判断答错」之後发出 )
点击「Do」的圆点角色,设定点击绿旗时,尺寸设定为 100% ( 因为播放音阶时会放大 )
设定当收到讯息「60」时,将尺寸变成 120%,等待 0.5 秒後再变回 100%。
收到讯息可以点击下拉选单中「新的讯息」,增加 60 的新讯息,又因为 Do 的音阶为 60,所以使用该数值作为判断依据。
接着设定当角色被点击的程序:
最後将圆形 Do 的程序,复制到 Re、Mi、Fa 和 So 的角色里。
以下图的 Re 为例,总共有三个位置要改成 62,依此类推修改 Mi、Fa 和 So。
完成後,点击绿旗,就可以开始进行音阶记忆的游戏。
范例解答:音阶记忆游戏
如果已经熟悉了音阶记忆游戏的原理,还可以尝试更多好玩的作法:
- 加入「云端变数」,纪录游戏的最高分 ( 解答 )
大家好,我是 OXXO,是个即将迈入中年的斜杠青年,如果对我有点兴趣(笑,可以与我联系,一起来做点有玩又有创意的东西吧!
<<: Unity与Photon的新手相遇旅途 | Day28-Unity 发布到IOS手机上
>>: Day43 ( 电子元件 ) 触碰开灯 ( 引脚按下 )
在整个组织中发布 Design System 从架构的角度来看,Design System 如同 l...
来部落格看图文并茂文章 补觉鸣诗 模拟器分三种 packet tracer GNS3 EVE-NG ...
接续前一天的单一功能原则,我们重构了 fetchUser 变成一个 customer hook , ...
Aloha!又是我少女人妻 Uerica!终於来到第 20 天了 (欢呼),已经过了三分之二了~人说...
在 Vue 中,使用了基於HMTL的模板,这种模板与允许开发者声明式地将 DOM 绑定至底层 Vue...