Scratch 是什么:为什么用积木教孩子编程
Scratch 是麻省理工学院媒体实验室为 8 到 16 岁青少年设计的图形化编程工具。它把传统代码里的每一条指令做成一块彩色积木,孩子只需要用鼠标把积木拖到一起、像拼乐高一样堆叠,就能让屏幕上的小猫、小球、飞船动起来。这种方式绕开了手写代码时最容易劝退孩子的语法错误和标点问题,把注意力集中在逻辑思考本身。
很多家长问:Scratch 是不是太简单了,学了以后要不要马上转 Python?答案是不急。Scratch 的核心价值不是写代码,而是建立"顺序、循环、条件"这三大编程结构的直觉。孩子在积木里反复试过"如果碰到边缘就反弹"之后,以后学任何文字编程语言,脑子里都会先冒出这个判断结构,再去找对应的语法怎么写。
Scratch 教的不是某种语言,而是"把一个大动作拆成一串小步骤"的思维方式。
- 积木Scratch 的指令单元,按颜色分类:运动、外观、声音、事件、控制、侦测等。
- 事件程序的触发器,比如"当绿旗被点击"或"当按下空格键"。
- 循环让一组积木重复执行,对应代码里的 for 和 while。
- 条件"如果碰到颜色就做什么",对应代码里的 if 判断。
认识界面:舞台、角色列表与积木区
打开 Scratch 编辑器后,界面从左到右分成三个区域。最左边是积木区,按颜色分了八大类:运动是蓝色、外观是紫色、声音是粉色、事件是黄色、控制是橙色、侦测是浅蓝色、运算是绿色、变量是红色。每一类下面都堆着很多可以拖出来的积木块。
中间是脚本区,你把左边拖出来的积木堆在这里,像搭积木一样一块接一块地接起来。最右边上面是舞台,角色实际表演的地方;舞台下面是角色列表,你可以添加多个角色,每个角色有自己的脚本。
| 区域 | 位置 | 作用 |
|---|---|---|
| 积木区 | 最左侧 | 存放所有可用指令,按颜色分类 |
| 脚本区 | 中间 | 拖拽积木拼接成程序 |
| 舞台 | 右上 | 角色表演的可视化区域 |
| 角色列表 | 右下 | 管理多个角色及其脚本 |
舞台上方有两个按钮:绿旗是"开始",红灯是"停止"。这两个按钮对应最常用的事件积木——"当绿旗被点击"。所有脚本都从这个事件积木开始,孩子一点绿旗,整个程序就跑起来了。
第一个积木:让小猫走起来
默认角色是一只叫 Scratch Cat 的橘色小猫。我们先让它动起来。从左边积木区拖出三块积木,按顺序接在一起:
当绿旗被点击
移动 10 步
等待 1 秒
点一下绿旗,小猫就会向右跳一下,停一秒。这里的逻辑很简单:事件触发之后,从上到下依次执行每一块积木。这就是程序最基本的"顺序结构"。
如果想让小猫走十步再停,你不需要拖十块"移动 10 步"。拖一块"移动 100 步"就行。数字是可以改的——点积木里的白色输入框,直接敲一个新数字。这个细节很重要:孩子会发现"积木上的数字是变量",为以后学变量和参数埋下伏笔。
当绿旗被点击
重复执行 10 次
移动 10 步
下一个造型
把"移动 10 步"和"下一个造型"塞进"重复执行 10 次"这块 C 形积木里,小猫就会迈着腿连走十步,看起来像真的在走路。这就是循环结构的第一次体验。
事件与循环:让程序自动重复
上一节我们已经见过"当绿旗被点击"这个事件积木。Scratch 里还有很多事件:"当按下空格键""当角色被点击""当背景切换到某个场景"。孩子可以给不同角色绑不同事件,让它们各司其职。
循环有两种:"重复执行 N 次"和"重复执行"(无限循环)。前者适合做固定次数的动画,比如让角色走五步;后者适合做游戏里持续运行的逻辑,比如让小球一直上下弹跳。
当绿旗被点击
重复执行
移动 5 步
如果碰到边缘就反弹
把上面这段给小猫绑上,点绿旗之后它会一直往右走,碰到屏幕边缘自动掉头,来回弹。这里"如果碰到边缘就反弹"是一个侦测加动作的组合积木——它同时做了两件事:检测有没有碰到边缘,碰到了就翻转方向。
让孩子自己改数字试试:把 5 改成 1,小猫走得很慢;改成 20,小猫像飞一样。这种"改一个数字看结果立刻变"的即时反馈,是 Scratch 最迷人的地方。
做一个追球小游戏:条件判断与碰撞
现在我们把前面学的东西拼成一个完整的小游戏:舞台上有一只小猫和一个红球,小猫要追着红球跑,碰到红球就算赢。
第一步,从角色列表添加一个"球"角色。第二步,给小猫写脚本:
当绿旗被点击
重复执行
朝向 球
移动 3 步
如果 碰到 球 那么
说 "抓到你了!" 2 秒
停止 全部脚本
这段脚本里有三个新东西:"朝向 球"是运动类积木,让小猫面朝球的方向;"如果碰到球那么"是控制类的条件积木,只有在碰到的时候才执行里面的"说"和"停止"。
第三步,给球写脚本,让它随机跑:
当绿旗被点击
重复执行
移到随机位置
等待 1 秒
这样球每隔一秒就跳到一个新位置,小猫一直在后面追。孩子可以调整数字:把球的等待时间改成 0.5 秒,游戏就变难;把小猫的移动步数改成 1,就变成龟速追击。
- 事件当绿旗被点击,启动两个角色各自的脚本。
- 循环重复执行,让追逐逻辑一直跑。
- 条件如果碰到球就说一句话并停止游戏。
- 侦测检测两个角色是否碰撞。
造型与声音:让角色更生动
光有动作还不够,好的游戏需要角色会变脸、会发声。Scratch 的"外观"积木和"声音"积木就是干这个的。
外观积木可以让角色切换造型、改变大小、显示思考气泡。小猫默认有两个造型(走路时左脚在前和右脚在前),我们前面用"下一个造型"让它看起来在走路。还可以让角色在抓到球时放大一下:
如果 碰到 球 那么
将大小增加 20
播放声音 "欢呼"
等待 1 秒
将大小设为 100
声音积木可以从 Scratch 自带的音效库里选一个播放,也可以用麦克风录自己的声音。孩子最喜欢做的事是给游戏加一个"哔"的碰撞声,或者在赢的时候播一段欢快的旋律。
这些看起来是"装饰",但其实在训练孩子的用户体验意识:什么时候该让角色变大、什么时候该出声音反馈,本质上和成年产品经理做交互设计时想的是同一件事。
保存与分享:把作品发布到社区
作品做完之后,点文件菜单里的"保存到我的电脑"可以把工程存成一个 .sb3 文件。这个文件就是 Scratch 的工程文件,以后双击就能继续编辑。
如果孩子注册了 Scratch 账号,还可以点"分享"按钮把作品发布到 Scratch 全球社区。世界各地的小朋友都能玩到他做的游戏,还能留言评论、二次改编。这种正向反馈是最好的学习动力——孩子会为了让游戏更好玩而主动去学新积木、试新逻辑。
- 先本地保存:每次做完一个小版本就存一次,文件名写上日期和版本号。
- 再考虑分享:分享前让孩子自己玩三遍,看看有没有哪里会卡住或者出 bug。
- 鼓励改编:玩别人的作品时点"看里面",看看别人是怎么拼积木的,偷师几招。
Scratch 不是终点,而是编程思维的起点。当孩子能用积木熟练地做出小游戏之后,就可以循序渐进地接触 Python 或 C++ 了。