音乐传球游戏
这篇教学会使用 Scratch 的角色造型、清单和广播,搭配声音的播放与暂停功能,实作团康里常见的“音乐传球游戏”游戏。
快速导览:
音乐传球游戏怎么玩?
“音乐传球游戏”是常见的团康游戏,玩法就是所有人围成一个圈,其中一个人拿着一颗球 ( 或其他物品 ),音乐开始时往左或往右传,音乐停止时“手上有球的人”就要接受处罚。
绘制角色
使用绘画的方式建立角色“music”,负责显示音乐的歌名,以及播放不同的音乐曲目,角色造型使用文字呈现音乐名称,造型名称使用“音乐名称”。
使用绘画的方式建立角色“btn_select”,负责切换音乐,以及呈现目前音乐的状态,角色共有三个造型,造型名称 green 表示准备开始或暂停中 ( 点击后会开始播 ),造型名称 red 表示正在播放,造型名称 gray 表示尚未选取该音乐。
使用绘画的方式建立角色“btn_slay”,负责播放音乐或暂停音乐,角色共有三个造型,造型名称 start 点击后会开始播,造型名称 continue 表示音乐暂停,点击后会继续播,造型名称 playing 表示音乐正在播,点击后音乐会暂停。
新增 min 和 max 两个变数,并按照下图,将两个变数和三个角色排列在舞台上,在变数上点击右键选择“滑杆”,将变数设定为滑杆显示模式。
上传音乐
点击“music”角色,切换到“音效”页签,使用上传的方式上传音乐,设定“音乐名称”与“造型名称”相同,举例来说如果有四首音乐,就会有四个造型,且造型名称和音乐名称完全相同。
程序原理 ( music 音乐 )
编辑“music”角色程序,建立“建立音乐清单”函数,勾选“执行完毕后再更新画面”。
参考“使用造型名称建立清单”,使用“建立音乐清单”函数将造型名称建立为清单,并在点击绿旗时执行函数,新增 music_name 变数纪录目前的音乐名称,完成后发送 start 广播信号。
按照下图建立四个接收广播的机制,机制说明如下:
| 接收的广播信号 | 说明 |
|---|---|
| new | 切换新的音乐,停止播放所有音乐,等待点击按钮开始。 |
| go | 从头开始播放指定音乐。 |
| play | 播放正在暂停中的音乐。 |
| pause | 暂停音乐,使用“音乐播放、暂停、继续播放、停止”的做法。 |
程序原理 ( btn_select 选择音乐 )
编辑“btn_select”角色程序,建立“建立分身”函数,勾选“执行完毕后再更新画面”。
点击绿旗时隐藏角色,接收广播 start 时执行函数 ( 目的在于确保 music_list 的内容完成后才建立分身 ),“建立分身”函数内容会根据 music_list 的长度,透过重复循环的方式,几首音乐就建立几个分身。
建立 name_local 变数,将变数设定为“仅适用当前角色”的区域变数。
设定产生每个分身时,将全域变数 n 增加 1,并根据当下的 n,设定区域变数 name_local 为指定的清单项目,让每个分身都有不同的 name_local 数值,接着设定点击分身时,将变数 music_name 设定为这个分身的 name_local 数值。
建立接收广播 new、go、play 和 pause 的机制,当收到 new 时,先将所有分身改成灰色,再根据 music_name 和每个分身的 name_local 对照,如果相等就将这个分身改成绿色。
程序原理 ( btn_play 播放音乐 )
编辑“btn_play”角色程序,设定不同造型时的点击行为,如果是 start 就发送 go 和切换为 playing,如果是 playing 就发送 pause 并切换为 continue,如果是 continue 就发送 play 和切换为 playing。
新增“倒数几秒”函数,负责处理倒数结束后音乐暂停的逻辑。
建立接收广播 new、go、play 和 pause 的机制,new 和 go 都会中止这个角色的重复循环,play 和 pause 则会执行念出倒数秒数的程序逻辑。
效果展示
范例解答
范例解答:Scratch 教学 - 音乐传球游戏
微信扫码关注
抖音扫码关注