Scratch 是什么:为什么用积木教孩子编程

Scratch 是麻省理工学院媒体实验室为 8 到 16 岁青少年设计的图形化编程工具。它把传统代码里的每一条指令做成一块彩色积木,孩子只需要用鼠标把积木拖到一起、像拼乐高一样堆叠,就能让屏幕上的小猫、小球、飞船动起来。这种方式绕开了手写代码时最容易劝退孩子的语法错误和标点问题,把注意力集中在逻辑思考本身。

很多家长问:Scratch 是不是太简单了,学了以后要不要马上转 Python?答案是不急。Scratch 的核心价值不是写代码,而是建立"顺序、循环、条件"这三大编程结构的直觉。孩子在积木里反复试过"如果碰到边缘就反弹"之后,以后学任何文字编程语言,脑子里都会先冒出这个判断结构,再去找对应的语法怎么写。

Scratch 教的不是某种语言,而是"把一个大动作拆成一串小步骤"的思维方式。
本文核心知识点
  • 积木Scratch 的指令单元,按颜色分类:运动、外观、声音、事件、控制、侦测等。
  • 事件程序的触发器,比如"当绿旗被点击"或"当按下空格键"。
  • 循环让一组积木重复执行,对应代码里的 for 和 while。
  • 条件"如果碰到颜色就做什么",对应代码里的 if 判断。
Scratch 启蒙示意:蓝色渐变背景上彩色积木互相咬合,旁边一个卡通机器人坐在积木堆上,发光连线串联各个积木块
Scratch 的世界:每一块积木都是一条指令,拼在一起就变成角色能听懂的动作剧本。

认识界面:舞台、角色列表与积木区

打开 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,就变成龟速追击。

这个小游戏用到的核心结构
  • 事件当绿旗被点击,启动两个角色各自的脚本。
  • 循环重复执行,让追逐逻辑一直跑。
  • 条件如果碰到球就说一句话并停止游戏。
  • 侦测检测两个角色是否碰撞。