从积木到创意:Scratch 进阶学什么

当孩子已经能熟练用 Scratch 做出小猫追球、画正方形这类基础项目之后,下一步该学什么?答案不是急着转 Python,而是把 Scratch 的进阶功能玩透。Scratch 还有很多强大的积木没被用到:广播、克隆、变量、自定义积木、音乐编辑器。掌握这些之后,孩子能做出的作品复杂度会直接上一个台阶。

进阶阶段的核心目标是:从"跟着教程做"变成"自己想做什么就做什么"。孩子开始有自己的想法——想做一个动画短片、想做一个音乐演奏器、想做一个有多个敌人的射击游戏——然后需要找到对应的积木来实现它。这个"想法驱动学习"的过程,比任何教程都有效。

Scratch 进阶的三个标志:会用广播让角色协作、会用克隆批量生成对象、会用音乐积木做互动声音。
本文核心知识点
  • 广播角色之间发消息的机制,实现事件驱动的协作。
  • 克隆复制一个角色的多个副本,用于敌人、子弹等批量对象。
  • 音乐积木指定音符和节拍,用代码演奏旋律。
  • 变量存储分数、生命值等需要随程序变化的数据。
创意工坊示意:蓝色渐变背景上浮动动画帧、几何音符、舞台聚光灯下彩色几何小人表演,旁边有画笔和调色盘
创意工坊的世界:动画帧、音符、舞台灯光组合在一起,就是一个孩子的互动小剧场。

广播机制:让角色之间说话

前面做的项目里,每个角色各干各的,彼此不交流。但很多好玩的项目需要角色之间配合:小猫说一句话,小狗回应一句;主角碰了开关,门就打开。这种"你做完一件事,通知我接着做"的机制,就是广播。

广播的用法很简单:在事件类积木里找到"广播消息1",点下拉可以新建一个消息,比如叫"开始对话"。然后在另一个角色的脚本里加上"当接收到开始对话",这个角色就会在消息发出后自动执行对应的脚本。

// 角色 A(小猫)的脚本
当绿旗被点击
等待 1 秒
广播 "开始对话"
说 "你好,小狗!" 2 秒
// 角色 B(小狗)的脚本
当接收到 "开始对话"
说 "嗨,小猫!" 2 秒

点绿旗之后:等 1 秒,小猫发出"开始对话"广播,小猫说"你好",同时小狗收到消息说"嗨"。两个角色的脚本几乎是同时开始执行的——这就是并发的雏形。

广播还有一个变体:"广播开始对话并等待"。用这个的话,发广播的角色会停下来等所有接收方执行完,再继续往下走。这个"等待"功能在做有严格顺序要求的动画时特别有用。

用广播做对话动画

有了广播,我们可以做一个完整的对话小动画。舞台上放小猫和小狗两个角色,背景换成公园。脚本逻辑是:小猫先走过来,说一句话;然后小狗走过来,回应一句;最后两个角色一起跳个舞。

把整个流程拆成几个广播消息:"出场""对话开始""回应""跳舞结束"。每个广播触发一段动画:

广播消息触发的动作
出场小猫从左边走到中间,小狗从右边走到中间
对话开始小猫说"今天天气真好",小狗点头
回应小狗说"是啊,一起玩吧",小猫转圈
跳舞结束两个角色一起重复摇摆动作 5 次

这种用广播把大动作拆成阶段的做法,和电影导演分镜头是一个思路。孩子在做的时候会学会一个重要的工程概念:用事件解耦。小猫不需要知道小狗会说什么,它只需要发出"该你了"这个信号,小狗自己决定怎么回应。

克隆技术:一个角色变出一群

做打飞机游戏的时候,你不可能手动拖出 20 个敌人角色。Scratch 的"克隆"积木就是干这个的:先建一个敌人角色,然后用"克隆自己"积木在程序运行时复制出多个一模一样的副本。

// 敌人角色脚本
当绿旗被点击
重复执行 5 次
  等待 1 秒
  克隆自己

当作为克隆体启动时
重复执行
  移动 5 步
  如果碰到底部边缘就删除此克隆体

这段脚本会每隔一秒生成一个新敌人,敌人从舞台顶部往下飞,飞出底部就自动消失。你只需要建一个敌人角色,就能在舞台上看到源源不断的敌人往下掉。

克隆体和原角色共享同一套脚本,但每个克隆体是独立的——它们的位置、方向、大小都可以不一样。用"将我的坐标设为随机位置"可以让每次克隆出来的敌人出现在不同的水平位置,看起来就像从四面八方飞过来。

克隆的三条规则
  • 启动事件每个克隆体从"当作为克隆体启动时"开始执行脚本。
  • 删除用"删除此克隆体"回收不需要的副本,避免内存堆积。
  • 计数用变量记录当前存活的克隆体数量,做生命值或关卡判断。

音乐积木:用代码弹出旋律

Scratch 的声音分类里有一组专门的音乐积木:选择一种乐器(钢琴、吉他、小提琴等),然后指定音名(C4、D4、E4 这些)和节拍数,就能播放出一个音符。把一串音符按顺序排好,就是一首曲子。

当绿旗被点击
将乐器设为 钢琴
演奏音符 60 拍数 0.5
演奏音符 62 拍数 0.5
演奏音符 64 拍数 0.5
演奏音符 65 拍数 0.5
演奏音符 67 拍数 1

数字 60 对应中央 C(也就是 Do),62 是 Re,64 是 Mi,65 是 Fa,67 是 Sol。上面这段脚本弹的就是 Do-Re-Mi-Fa-Sol,一个简单的上行音阶。孩子可以自己改数字,弹自己喜欢的旋律。

更进阶的玩法是把音乐和游戏交互结合:比如点到一个角色就弹一个音符,做一个"音乐地板"——踩上去就发出不同的声音。这种项目孩子做出来会特别有成就感,因为它把"写代码"变成了"演奏音乐"。