Scratch 速查 — 简明参考
Scratch 3 积木式编程速查手册:变量、列表、克隆体、广播与九大积木分类,覆盖初学者游戏 / 动画 / 故事构建。
Scratch Scratch 3.0 (online editor)
Scratch 3 (积木式) · 事件驱动 · 可视化 · 单线程协作 · 动态(弱类型变量)
学习路径
先拼第一个程序:绿旗开始 + 说积木 → 掌握变量与列表、流程控制(如果 / 重复)→ 用侦测积木读键盘鼠标、用广播让角色对话 → 再用自制积木整理代码、用克隆体做多角色 → 最后看 FAQ 节避坑,学会用计时器做计时、云变量存纪录。
1.Hello World 与起点
从绿旗开始的第一个程序:让角色说话、切换造型与背景,认识九大积木分类。
最小程序
点绿旗让角色说话,是每个 Scratch 项目的起点。最小程序只需要事件与外观两类积木。
绿旗开始
绿旗积木是整个项目的启动开关。点击舞台上方的绿旗,所有从它开始的脚本同时运行;点红色停止按钮可全部停下。
角色说话
说与思考积木让角色在气泡中显示文字,是最直观的输出方式。指定秒数会停留后消失,不指定则一直显示。
切换造型
每个角色可以有多套造型,切换造型就能做出走路、眨眼等动画。下一个造型积木按顺序轮换。
切换背景
舞台背景相当于场景,可随情节切换。搭配「当背景切换成」积木让不同背景执行不同脚本。
九大积木分类
积木按功能分成九类,颜色各不相同:运动蓝、外观紫、声音粉、事件黄、控制橙、侦测青、运算绿、变量橙、自制积木。
脚本从上到下
同一段脚本从上往下逐块执行,前面的积木完成后才轮到后面的,顺序决定动作先后。
保存与分享
登录后项目会自动保存到云端。「文件」菜单可下载到电脑,点右上角「分享」可发布到网站供大家在线玩。
2.变量与常量
建立变量、设定与改变数值、显示隐藏,以及云变量与局部变量。
建立变量
在「变量」分类点「建立一个变量」,输入名字(如 分数)。变量像盒子,可以存数字、文字或布尔值。
设定与改变
设定把变量设成某个值;改变在此基础上加或减。积分、生命值都靠改变积木更新。
显示与隐藏
变量默认显示在舞台左上角,可拖动位置。不想要的变量用隐藏积木藏起来,保持画面干净。
列表变量
列表是能装很多条数据的变量,像一串盒子。可添加、删除、读取指定位置的元素。
常量与固定值
积木里直接填写的数字或文字就是常量,运行中不会变化。需要可变的数据才用变量。
云变量
云变量把数据存到服务器,所有打开该项目的用户共享同一份。适合做排行榜,但只支持数字。
局部变量
默认变量全项目共享;建变量时勾选「仅适用于当前角色」就变成该角色独有。克隆体还会拥有各自独立的副本。
滑块变量
右键舞台上的变量显示器可设为滑块,用鼠标拖动实时改变数值,适合做音量、速度等可调参数。
3.数据形式
Scratch 的数据分数字、字符串与布尔三种形式,变量自动推断类型。
数字
数字直接填在积木的白色圆孔里,可正可负可有小数。四则运算积木返回数字。
字符串
文字(字符串)放在白色圆孔或椭圆孔里。说、思考、列表内容都可以是字符串。
布尔值
比较和逻辑积木返回真(true)或假(false),只能填进六边形孔里,用来做判断条件。
列表元素
列表元素可以是数字也可以是文字,读取时按序号取第 n 条。元素类型不固定,可混存。
类型自动推断
Scratch 不强制声明类型:变量存什么就是什么,可随时改存不同类型。运算时数字与文字会自动转换。
输入格式
提问积木让用户输入,回答积木拿到的是字符串。要当数字用可借助运算积木转换。
输出格式
说、思考积木把数据变成可见文字。运算结果、列表元素都可直接放进输出积木。
数值与文字转换
round 四舍五入取整、mod 取余;数字参与文字拼接时自动变成文字。
4.变量与数据存储
用变量与列表存取数据,通过克隆体、广播与云变量在角色间传递数据。
变量存储
变量是数据的「家」:先设值再使用。脚本之间通过读写同一个变量共享数据,但要注意读取时机。
列表存储多条
列表一次存多条数据,像数组。按序号读写,适合记录一局里所有得分、敌人坐标等。
克隆体携带数据
克隆体会复制角色的全部脚本与变量。每个克隆体的「仅适用于当前角色」变量独立,可用序号区分彼此。
私有变量
勾选「仅适用于当前角色」的变量在每个克隆体里各有一份,改一个不影响其他克隆体,是区分克隆体的关键。
云变量
云变量把数字同步到服务器,所有玩家共享同一份数据。适合排行榜、在线对战,但值只能是数字。
广播传递数据
广播本身只传「消息名」,要传数据可以把值写进全局变量再广播,接收方读取变量。
全局与局部变量
默认变量全局可见:任何角色的脚本都能读写。选「仅适用于当前角色」则该变量只属于此角色或某个克隆体。
数据持久化
变量只在项目运行时存在,刷新页面或关闭项目就清空。要长期保存可用云变量,或把数据整理导出。
5.流程控制
用条件判断与循环控制脚本走向:如果、重复、重复直到、等待与停止。
如果判断
「如果…那么」满足条件才执行里面的积木。条件是六边形孔,放比较或逻辑积木。
如果否则
「如果…那么…否则」二选一:条件成立走前段,否则走后段。适合判断输赢、开关状态。
重复执行 n 次
「重复执行 N 次」把里面的积木按次数循环,常用于逐格移动、重复画图、播放多次音效。
无限循环
「重复执行」永不停止,配合停止积木或条件结束。角色巡逻、背景滚动这类持续行为放里面。
重复直到
「重复执行直到…」先执行后判断,满足条件就停下。适合等用户按键、等分数达标。
等待
「等待 1 秒」暂停当前脚本;「等待直到」暂停到条件成立。注意:等待会卡住当前脚本,其他脚本照常运行。
停止脚本
「停止全部」结束所有脚本;「停止这个脚本」只停当前这段;「停止该角色的其他脚本」保留这段。
组合逻辑
与、或、非把多个条件组合成一个。与要求都真,或要求至少一真,非取反。
6.自制积木(函数)
自制积木把重复代码包成可复用块,可带参数、可返回数值,相当于函数。
制作积木
在「自制积木」分类点「制作新的积木」取名并添加参数,脚本区出现 define 积木,把逻辑写进去。
带参数
制作时添加数字或文本输入,调用时填入不同值。参数是局部变量,只在块内有效。
返回数值
自制积木默认无返回值。要「返回」结果,可用一个变量装结果,调用后读取。
调用自制积木
定义好后在需要的地方直接放上调用块即可执行。调用一次就运行一遍块内脚本。
递归
自制积木可以调用自己(递归)。Scratch 有栈深度限制,别写太深的递归,建议改用循环。
不刷新屏幕
编辑自制积木时勾选「运行时不刷新屏幕」,块会一次性瞬间执行完,适合大规模列表运算与快速计算。
参数局部性
自制积木的参数在块内有效,但块内新建的变量默认全局可见,注意别与外部同名变量互相覆盖。
复用与拆分
把一段逻辑抽成自制积木后,可在多个事件里反复调用,代码更整洁也更好调试。
7.字符串
连接、取字符、长度、包含等字符串运算,支持简单文本处理。
连接文本
「连接」把两段文字首尾相接成一个新字符串,常用于拼提示语、拼坐标。
提取字符
「第 N 个字符」取出字符串中指定位置的字符。中文按字算,空格也算一个字符。
字符串长度
「字符串长度」返回字符个数,英文空格中文都各算一个。判断空串、限制输入长度会用到。
判断包含
「包含」判断一个字符串里是否含另一段,返回布尔值。可做关键词检测。
查找位置
结合「第 N 个字符」与「字符串长度」可手工实现查找:逐位比较,找到后返回位置。
拆成列表
把字符串逐字符存进列表,便于逐字处理。配合重复执行遍历。
空串判断
「长度 = 0」即空串。输入框留空时 answer 是空串,先判断再使用避免出错。
拼接长文本
Scratch 的文字积木是单行输入,长文本可用多个连接积木逐段拼起来。逗号、空格都会原样保留。
8.列表与数据结构
列表是 Scratch 的核心数据结构,支持增删改查、遍历与二维模拟。
建立列表
在「变量」分类点「建立一个列表」,像变量一样出现在脚本面板。舞台上的列表可显示或隐藏。
添加与删除
添加把新元素放队尾;删除指定序号或全部清空。删除后序号自动前移。
读取元素
「第 N 个元素」按序号取值,序号从 1 开始。越界序号不会报错,但返回空。
替换元素
「替换第 N 个元素为」改掉指定位置的值,长度不变。适合更新某一格的物品。
插入元素
「在第 N 个位置插入」把新元素插到指定位置,后面的元素自动顺延。
查找元素
「列表包含」判断某元素是否存在,返回布尔值。先查再用,避免读空值。
遍历列表
用「重复执行直到」加序号变量逐条处理列表,这是模拟循环遍历的通用写法。
二维数据模拟
列表是一维的,可用「编号 = 行 × 列数 + 列」模拟二维表格,做地图、棋盘。
9.项目与资源管理
管理角色数量、列表大小与克隆体上限,优化项目性能避免卡顿。
克隆体上限
Scratch 每个项目最多同时存在 300 个克隆体。超过上限会自动删除最早的克隆体。
列表大小控制
列表无限增长会拖慢项目。用完的数据及时删除,或限制最大条数。
角色数量
角色(精灵)越多,每帧要计算的任务越重。同类型对象优先用克隆体而不是复制多个角色。
广播风暴
频繁大量广播(如每帧都广播)会让所有接收脚本不断重启,拖慢项目。把广播放到条件变化时。
变量缓存
把重复计算的结果存进变量,避免每次都用复杂运算。多次用到的值提前算好存起来。
精灵列表管理
舞台右下角的角色列表显示全部精灵。拖动调整顺序,右键可复制、导出、删除角色。
性能优化
减少每帧重绘、避免海量列表运算、限制克隆体与粒子数量,项目就更流畅。
造型与声音资源
每个造型、声音都是资源,越多项目文件越大、加载越慢。删无用资源、导入前压缩图片。
10.角色即对象
每个角色都是对象:自带变量与脚本,克隆体就是多实例。
角色即对象
角色封装了造型、变量与脚本,本身就是一个小对象。舞台则相当于全局容器。
克隆体即实例
克隆体是角色的副本实例,共享造型与全局脚本,但有自己的位置、大小与私有变量。
广播即方法调用
广播相当于向其他「对象」发消息,接收积木处理消息。类似面向对象里的消息调用。
私有属性
「仅适用于当前角色」的变量就是对象的私有属性,克隆体各自独立,互不干扰。
克隆复用
克隆一个角色就得到同款「模板」,再改脚本或变量就能派生出行为不同的实例,类似继承。
状态与行为
对象的状态存在变量里,行为是脚本。通过判断状态变量决定执行哪套行为。
事件驱动模型
Scratch 是事件驱动:绿旗、按键、点击、消息都触发对应脚本。没有主函数,一切从事件开始。
消息传递
角色之间不直接访问对方变量,而是通过广播消息 + 读取共享变量协作,解耦更清晰。
11.调试与错误处理
Scratch 没有异常机制,靠监视变量、说积木与边界检查来发现问题。
没有异常机制
Scratch 不会抛异常,程序只会按错误逻辑悄悄运行。所以提前检查数据、主动防错很重要。
监视变量
右键舞台上的变量显示器可切换正常读法、大字读法、滑块或隐藏,方便实时观察数值。
用说积木调试
在可疑位置放「说 (某变量)」把中间值打出来,排查逻辑。查完记得删除。
边界检查
读取列表元素前先判断序号是否在范围内,避免读到空值。范围是 1 到长度。
空值检查
answer 为空、列表为空时先判断再使用,防止拿空值参与运算产生奇怪结果。
列表越界
列表序号从 1 开始,删除元素后序号会自动前移。用「长度」做上限就不会越界。
分步调试
把大脚本拆成小块逐段测试,或用等待积木放慢节奏,观察每一步发生了什么。
常见错误清单
错误常源于变量没初始化、条件写反、序号越界、广播没人接收。按清单逐项排查。
12.输入与输出
用侦测积木读键盘、鼠标与问答,用说、造型与背景输出,云变量存数据。
键盘输入
「按下空格键?」侦测按键是否被按住,配合循环实现持续移动,配合单次判断实现跳跃。
鼠标输入
侦测鼠标位置与按下状态,让角色跟随鼠标或响应点击。
问答输入
「询问…并等待」弹出输入框,用户回答存进「回答」积木。回答永远是字符串。
碰触侦测
侦测角色是否碰到鼠标、其他角色或颜色。做碰撞检测、抓取物品都会用到。
侦测值输出
x 坐标、y 坐标、方向、响度、计时器等都是可读取的侦测值,可直接进运算。
广播输出
广播让其他角色同步动作,是角色间的主要输出通道,接收方做响应。
云变量存储
云变量把数字存到服务器,所有玩家共享。适合做最高分、在线统计。
输出到画面
说、思考显示文字,造型切换显示图像,播放声音输出音频。组合它们做出反馈。
13.常见坑
新手最常踩的八个坑,BAD 是错误写法,GOOD 是正确做法。
无限循环卡住
在 forever 循环里写等待,若条件永远不满足,脚本就卡住。循环里要有能改变条件的积木。
广播时序
广播是异步的:发完立刻继续执行,接收脚本同时启动。需要顺序时用「广播并等待」。
克隆体变量混乱
全局变量在克隆体间共享,改一个全变。要区分克隆体,用「仅适用于当前角色」的私有变量。
等待永不满足
wait until 条件由另一段脚本设置时,那段脚本可能没运行。确保有脚本能改变该条件。
空值参与运算
answer 或列表元素为空时参与比较、运算会得到假或奇怪结果。先判断长度再使用。
列表序号越界
列表序号从 1 开始,最大是长度。用 0 或超过长度的序号读不到内容,还容易出错。
造型名不一致
切换造型时名字必须与造型面板里的完全一致,多一个空格或少一个字切换都不会生效。
递归过深
Scratch 对递归调用有栈深度限制,太深会悄悄停止或异常。用循环代替深度递归。
14.多脚本与并发
多个事件脚本并行运行,用广播与等待协调它们的执行顺序。
并行脚本
同一个角色可以有多段独立脚本,它们从各自的触发事件开始并行执行,互不等待。
事件即线程
每个事件(绿旗、按键、点击、接收消息)都启动一条独立脚本,相当于一个线程。
共享变量
所有脚本共享全局变量。多段脚本同时改一个变量时,结果可能互相覆盖。
竞态条件
两段脚本同时对同一个变量做「读-改-写」,可能丢失一次更新。关键逻辑尽量放在同一段脚本里。
广播同步顺序
「广播并等待」会等所有接收脚本执行完再继续,可用于安排多步动画的先后顺序。
停止线程
停止积木能停掉指定脚本:全部、这个脚本、或该角色的其他脚本。常用于重置。
协调多角色
多个角色并行行动时,用共享变量加等待,让它们齐步走或按顺序行动。
单线程协作
虽然脚本并行,但每个脚本内部仍按顺序逐块执行,同一时刻只执行一块积木。长循环会卡住同角色其他脚本。
15.网络与扩展
云变量让项目联网共享数据,扩展积木提供翻译、朗读等在线能力。
云变量联网
云变量把数字实时同步到服务器,多个用户运行同一项目时数据互通,适合排行榜和简单对战。
翻译扩展
「翻译」扩展调用在线翻译,把文字译成目标语言并返回字符串。
文字转语音
「文字朗读」扩展把文字读出来,可切换语言与音色,需联网调用语音服务。
视频侦测
「视频侦测」扩展用摄像头捕捉动作,让玩家挥手控制角色。首次使用需授权摄像头权限。
分享到网站
点右上角「分享」发布项目到 Scratch 官网,任何人可在线运行、点赞与评论。
改编作品
在网站上点「改编」复制别人项目,改成自己的版本。改编会保留原作者署名。
云变量限制
云变量有使用限制:每个项目数量有限,值只能存数字且不能太长,频繁更新会被服务器限流。
网络安全与隐私
在线项目会公开分享。不要把真实姓名、住址、电话等个人信息写进作品。
16.时间与计时
用计时器、等待与天数积木做倒计时、秒表与限时关卡。
计时器
「计时器」从项目运行开始计时,单位秒,可精确到小数,是秒表和倒计时的核心。
计时器归零
「计时器归零」把计时器重置为 0,用于开始新一段计时。
天数计时
「自 2000 年以来的天数」返回从 2000-01-01 起的天数,可用于跨天计时或记录上次打开时间。
等待秒数
「等待 N 秒」暂停当前脚本 N 秒,用来做节奏、延迟与动画帧率。
倒计时
用计时器与减法做倒计时,归零后触发结束事件。
秒表
用计时器差值测量一段操作的用时,适合做反应测试小游戏。
限时关卡
限定时间内完成任务,超时则失败。把倒计时与胜利条件结合。
计时动画
用计时器让动画与时间挂钩,而不是依赖帧率,保证不同电脑上速度一致。
17.脚本生命周期
脚本是 Scratch 的最小执行单元,理解它的启动、运行与停止,就理解了整个项目流程。
脚本即过程
一段从事件积木开始、到末尾结束的脚本,就是一个小过程。多段脚本组成完整程序。
绿旗启动
绿旗是标准启动入口:点击后所有「当绿旗被点击」脚本同时开始,相当于主程序入口。
事件处理器
事件积木是脚本的「头」,触发时才运行。没有触发条件,脚本不会自己启动。
原子执行过程
自制积木勾选「运行时不刷新屏幕」后,整个块一次性执行完,中间不渲染画面,适合快速批量计算。
并行生命周期
各脚本独立启动与停止。停止积木可以精确控制:全部、这个脚本或该角色其他脚本。
停止的作用域
「停止这个脚本」只影响当前段;「停止该角色的其他脚本」停掉同角色其余脚本;「停止全部」清场。
状态机过程
用变量记录当前状态,让脚本在状态间切换,实现菜单、游戏、结束等场景流转。
项目生命周期
一个项目从加载资源、点击绿旗启动,到停止按钮结束,再到保存分享,构成完整生命周期。
18.文本模式匹配
Scratch 没有正则,用包含、字符判断与列表拆分做简单匹配。
没有正则
Scratch 没有正则表达式积木。复杂文本匹配需要自己用运算积木模拟,或交给扩展处理。
包含匹配
「包含」做最简单的子串匹配,判断文本里是否出现某个词。
判断开头
取第 1 个字符判断是否以某字开头,做前缀检测。
判断结尾
取最后一个字符判断结尾,做后缀检测。最后一位的序号就是字符串长度。
字符类别
判断单个字符是数字还是字母,可先做一张数字表,再用「包含」查询。
模式查找
用循环逐字符扫描文本,查找满足条件的片段,如找出一串数字。
拆分解析
按分隔符把文本拆进列表再逐段处理,实现简单的解析。
通配符模拟
用「包含」加多重条件模拟通配符,例如判断文本是否匹配任一关键词。
19.保存发布与调试
保存、导出、分享项目与调试技巧,让作品更流畅可玩。
保存项目
登录后项目自动保存到云端。「文件」菜单可手动保存或下载到电脑做备份。
.sb3 文件格式
项目文件后缀 .sb3,是一个压缩包:内含 project.json 与造型、声音等素材,可离线打开。
分享发布
点右上角「分享」发布作品,设置标题、说明与标签,帮助更多人找到它。
改编再创作
在网站上改编他人项目作为学习起点,改脚本、加关卡,发布自己的版本。
调试工具
用监视变量、说积木、放慢等待等技巧定位问题,逐段验证脚本。
备份与版本
下载 .sb3 到本地做备份,改名保存多个版本,改坏了大不了退回上一版。
发布前检查
发布前测试各入口:绿旗、按键、点击、广播;确认无死循环、无越界、画面不卡。
持续学习
从官方教程、Scratch Wiki 与社区项目学习更多技巧,不断改进你的作品。
关于本速查
Scratch 是麻省理工学院媒体实验室开发的免费可视化编程语言,专为 5–16 岁学习者设计。它用「积木」拼搭代替敲代码:把运动、外观、声音、事件、控制、侦测、运算、变量、自制积木九大分类的积木拖到脚本区,就能做出角色动画、互动游戏与创意故事。 本页是 Scratch 3 的自包含速查手册,覆盖初学者在游戏、动画与故事构建中约 80% 的常见用法。19 个章节各聚焦一个主题:从第一个程序(hello)、变量与数据存储(vars / types / pointers)、流程控制(control)、自制积木(funcs)、字符串与列表(strings / collections)、项目与资源管理(mem)、角色对象模型(oop)、调试与常见坑(errors / faq)、输入输出与并发脚本(io / threads)、云变量与扩展(net)、时间与计时(time)、脚本生命周期(proc)、文本模式匹配(regex)到保存发布与调试(build)。每节拆成 8 个带示例的小节,每个示例 5–20 行,方便边读边抄。 与其他编程语言不同,Scratch 没有文本语法,这里用积木的可读文本表示,方便离线查阅与回忆。全部内容在你的浏览器内渲染——不上传、不追踪,隐私安全。本页是 GuruToolkit 免费开发者工具集的一部分;代码片段可自由使用,不提供任何担保。
版本 2.1.0