简介:Scratch 3.0指令大全是一份面向少儿编程学习者、家长与教师的系统参考资料。Scratch由美国麻省理工学院专为8至16岁孩子开发,采用类似搭积木的方式编写程序,极大降低了编程门槛,已广泛用于全球中小学课堂;文档覆盖运动、外观、声音、事件、控制、侦测、运算、变量等九大类共123个指令。每个指令均按模块逐项讲解其名称、功能用途和参数设置方法,并对坐标移动、方向旋转、边缘反弹、角色外观切换等高频指令补充示例与注意事项,帮助读者快速理解图形化编程逻辑、减少上手试错成本。资源仅含1个PDF文件,约1015KB,便携易用,支持离线查阅与打印;已有677人学习下载。内容还介绍了官方扩展及常见第三方扩展,既可作为课堂辅助手册,也适合自学入门与日常编程速查,是一份实用的编程指令词典。
1. 为什么你需要一份能照着用的 Scratch 3.0 指令清单
很多人打开 Scratch 3.0 的第一反应是拖积木挺好玩,但真要做点像样的项目,就卡在“不知道用哪块积木”。网上碎片化的教程只讲某个效果,查完一圈还是拼不出完整逻辑。我做过不少小学生编程课和快速原型,发现真正的问题不是创意不够,而是对指令面板里的积木缺乏系统认识——不知道运动类里哪个能平滑转向,不知道侦测类里坐标值与角色定位的关系,更不知道克隆体的指令约束。这篇文章就是一份实战导向的指令整理:按功能块拆解,告诉你每个常用积木放在什么场景、参数怎么填、组合时有哪些坑。新手可以照着搭,做过一两个项目的熟手也能从“会用”变成“会用对”。
2. 按功能块拆解指令:运动、外观、声音与事件
2.1 运动类指令的必用与易混项
运动类是所有项目里出镜率最高的面板,但也是最容易积木用错的地方。先看最基础的三块:移动 10 步、右转 15 度、左转 15 度。移动是沿角色当前朝向走固定距离,单位是步,60 步约等于角色自身宽度;右转和左转控制的是朝向角,不是屏幕坐标方向。很多人以为点右转角色就往屏幕右边走,实际是角色朝向顺时针偏转,之后移动才沿着新朝向走。
当绿旗被点击 面向 90 方向 移动 50 步这里面向 90 方向是常见的初始化积木,90 指屏幕正右,0 指正上,-90 指正左,180 指正下。参数用数字直接填,也可以拖一个运算积木进去动态计算。我习惯在角色换造型或关卡切换后,先加一条面向积木,否则角色可能保留上次的斜向角度,第一帧移动就歪了。
运动类里还有两个容易混的:移到 x: y:和滑行到 x: y:。前者瞬移,后者有动画过程。滑行不是持续加速运动,而是匀速插值,想做出缓动效果得靠循环逐帧更新坐标。另外碰到边缘就反弹这个积木只改变方向,不改速度,角色在边缘来回弹时如果配合右转,轨迹会显得机械。
坐标的理解是最关键的。舞台宽约 480、高约 360,中心为 (0, 0)。将x坐标设为和将y坐标设为是分别改坐标轴,将x坐标增加适合做左右移动。我做平台跳跃时,喜欢用将y坐标增加配合重力变量,而不是直接设固定值,因为重力的累计变化更自然。
运动类里移到随机位置和在 1 秒内滑行到随机位置适合做道具刷新,但注意随机位置可能跑到舞台边缘或压住其他角色。需要限制范围时,用运算里的在 1 和 10 之间取随机数自己拼坐标。
2.2 外观与声音:让角色“会说话”的积木组合
外观类解决的是“角色怎么切换造型、怎么说话、怎么显示/隐藏”。最常用的是说 你好 2 秒,它会在角色上方显示气泡,时间到自动消失。另一个是思考 嗯… 2 秒,气泡带省略号,适合内心独白。两者参数里的秒数填 0 会一直显示直到下一条消息覆盖。
造型切换是动画的核心。下一个造型按造型列表顺序切换,换成 造型1 造型则指定名字。我一般用重复执行配合下一个造型做走路动画:
当绿旗被点击 重复执行 下一个造型 等待 0.2 秒这里的等待 0.2 秒是关键,不加等待的话角色每秒切换几十次,看起来像闪烁。等待时间决定动画帧率,0.1 到 0.3 之间比较自然。如果角色只有两个造型,这个循环会来回切;如果有 4 个造型,它会循环到底再从第一个开始。
显示和隐藏容易踩坑:隐藏后角色仍会响应事件和侦测,只是看不见。隐藏状态下的移到 x: y:依然有效。所以做敌人消失时,要先隐藏,再在 1 秒后显示,但需要在隐藏前记录位置,否则显示时可能回到原点。
声音类指令相对简单:播放声音 喵会等声音播完再执行下一条,启动声音 喵则是边播边跑后续积木,适合做背景音效。将音量设为 50%是全局音量,不影响单个声音的响度设置。我见过有人想让两个音效重叠,结果用了播放声音,导致后一条把前一条打断——换启动声音就解决了。
舞台背景也是外观的一部分。换成 背景1 背景和下一个背景用于切换场景。做游戏关卡时,我习惯用背景名称做状态判断,比如检测当前背景是不是“胜利”,从而决定是否停止敌人刷新。
2.3 事件类指令:程序启动的三种常见方式
事件面板是整个程序的“开关”。最常见的是当绿旗被点击,作为项目总入口。它适合放初始化积木,比如角色位置、变量清零、背景切换。但注意一个项目里可以放多个绿旗积木,它们会同时执行,且互不影响,因此不要把需要先后逻辑的积木分开放。
第二个常用的是当按下 空格 键。它响应的是“按下”这一瞬间,不是“按住”。如果按住不放,Scratch 不会重复触发。想要按住连续移动,必须在循环里判断按键 空格 是否按下(侦测类),而不是依赖这个事件。
第三个是当角色被点击,常用于按钮角色。你可以给按钮换一个造型表示被按下,也可以在事件里广播消息给其它角色。广播是事件面板里最灵活的积木:广播 消息1会通知所有角色执行对应的当接收到 消息1。注意广播不等待接收方的积木执行完,如果想串行,要用广播并等待。
我的一般原则:绿旗事件只做一次初始化,消息广播用于阶段切换,键盘事件用于单次操作。这样排布,项目后期加功能时不会互相踩线。
3. 控制、侦测与运算:真正决定项目逻辑的指令
3.1 控制类:循环、条件与克隆的实用参数
控制面板里有重复执行、重复执行 10 次、如果 那么 否则、等待 直到、克隆自己等。循环是最常用的。重复执行是无条件死循环,必须配合退出条件或停止脚本,否则会导致角色一直动。我遇到过有人把重复执行放在绿旗事件下,又在里面等 1 秒,结果想中途停止整个程序,只能按红色停止按钮。
重复执行 10 次适合固定次数,比如投篮抛物线要循环 20 次模拟,或动画播放固定帧数。重复执行直到 条件则适合做“等待某个变量满足”的循环,比如:
重复执行直到 <生命值 < 1> 移动 5 步 等待 0.1 秒条件里的生命值 < 1是运算类积木。注意重复执行直到是先判断再执行,如果条件一开始就成立,循环体一次都不跑。这和“先执行再判断”的需求要区分。
如果 那么 否则是分支核心。Scratch 里没有else if,要嵌套写。多层条件嵌套会让积木变得高高的一坨,可读性差。我通常用或者、且运算把多个条件合并,或者用“如果 那么”加上“停止该脚本”提前退出。
克隆是控制面板里最强大的功能,但也是新手最容易翻车的地方。克隆自己会生成一个与角色同样造型、同样位置、同样变量的副本。克隆体有自己的脚本,但克隆体不能被再次克隆?实际上,克隆体可以再克隆,但总克隆数限制在 300 个左右。我做的粒子系统里,为避免超出限制,会在克隆体脚本里加一个生命周期计数器。
克隆体的一个特点是:它不继承当绿旗被点击事件,只继承角色身上的普通脚本。所以想让克隆体动起来,要给它单独写当作为克隆体启动时的积木。我常用这个结构:
当绿旗被点击 重复执行 10 次 克隆自己 等待 0.1 秒 当作为克隆体启动时 重复执行 移动 5 步第一个循环负责生成,第二个循环负责克隆体的行为。注意克隆体启动脚本如果包含当绿旗被点击,克隆体不会响应。这是指令选择上的经典坑。
3.2 侦测与运算:把“如果…那么…”玩出花
侦测面板的核心是“布尔值”——真或假。碰到 鼠标指针、按下 空格 键、颜色 碰到 颜色都返回真假,直接可以放进如果 那么的条件槽里。颜色碰撞侦测很适合做障碍物游戏,但也容易误判:两个颜色只要 RGB 值接近,就认为碰到。要精确碰撞,最好用角色碰角色,而不是颜色碰颜色。
询问 你的名字 并等待会让舞台下方出现输入框,用户输入的内容存在回答里。注意它不是阻塞式?实际上它会等待用户输入并点击勾号,然后继续。这个积木适合做文本交互,但在移动端体验不好,输入框可能被遮挡。
运算面板里最常用的是比较运算和逻辑运算。大于、小于、等于直接连接变量。注意等于比较的是“值”而不是“类型”,所以x = 1和x = 1.0会视为相等。字符串比较区分大小写吗?Scratch 的等于比较字符串时不区分大小写,这点和 Python 不同。做用户名验证时别依赖它区分大小写。
连接 你好 世界是字符串拼接,做动态提示时常用:
说 连接 当前得分是 得分这个积木只能拼两个参数,想拼三个就嵌套:连接 连接 分数 得分 分。四层嵌套会比较难看,我通常用变量先组装,再用一句话显示。
运算面板里的在 1 和 10 之间取随机数是整数随机,上限下限都包括。如果想随机小数,可以用除以配合随机数。比如随机 0.5 到 2.5 之间的数,写成在 1 和 5 之间取随机数 / 2。
3.3 变量与自制积木:从零搭一个计数器
变量面板是“数据”的中枢。点击“建立一个变量”后,可以勾选是否在舞台上显示。我建议把调试变量设为可见,正式项目里的得分、生命值也显示出来,玩家能实时看到反馈。变量分为全局变量和仅适用于当前角色,全局变量在所有角色中共享,角色变量只在对应角色里生效。
计数器最基础的实现是:
当绿旗被点击 将 得分 设为 0 重复执行 如果 <碰到 金币角色> 那么 将 得分 增加 1 等待 0.5 秒 end这里的等待 0.5 秒很重要,否则碰撞检测每帧触发,得分会瞬间暴涨。更稳健的做法是加一个标志变量是否已拾取,碰到后设为1,直到角色离开半径再复位。
自制积木是 Scratch 3.0 里最被低估的功能。它相当于自定义函数,可以在“自制积木”面板里“建立新的积木”,输入名称和参数。比如做一个跳跃物理:
定义 跳跃 高度 重复执行 10 次 将y坐标增加 5 等待 0.01 秒 重复执行 10 次 将y坐标增加 -5 等待 0.01 秒调用时直接放跳跃 50,50 就传给高度参数。自制积木的好处是:修改逻辑只改定义处,调用处不用动;而且运行速度比绿旗事件触发快,因为它是同步调用。
我一般把项目里重复出现的逻辑全部封装成自制积木,比如“重力更新”、“碰撞检测”、“生成道具”。封装后项目脚本总数明显下降,排查 bug 时也只需要看定义处。
4. 指令大全之外的隐性指令:扩展与画笔模块
4.1 画笔模块:用指令画几何图形的最小参数
画笔模块在 Scratch 3.0 默认不显示,需要点击左下角的“添加扩展”,选择“画笔”。它提供全部擦除、图章、落笔、抬笔、将画笔颜色设为、将画笔粗细设为等积木。画笔的核心是“落笔后移动会产生轨迹”,所以画图形必须动态调用移动和转向。
画一个正方形的最小积木组合:
当绿旗被点击 全部擦除 抬笔 移到 x:0 y:0 落笔 重复执行 4 次 移动 100 步 右转 90 度这里抬笔到起点是为了不留下移动线,落笔后才开始画。循环 4 次,每次 100 步、右转 90 度,正好闭合。参数调整:边长改 100,角度必须保持 90;若画正三角形,角度是 120,重复 3 次。
画圆形更简单:重复 360 次,每次移动 1 步右转 1 度。但这样速度慢,我一般用重复 36 次、每次移动 10 步右转 10 度,看起来足够圆。注意移动步数越多,画出的圆周长越大,圆心位置需要预判。
图章积木会在当前位置复制一个角色造型,不产生移动轨迹,适合做脚印、装饰物。将画笔颜色增加不能直接增加,需要用运算拼 RGB 值,或者用将画笔颜色设为配合拾色器手动选。
画笔模块的性能问题:连续画大量图形会积压轨迹,角色移动卡顿。我通常会在画完一帧后全部擦除重绘,而不是让画笔越叠越多。
4.2 音乐与扩展:让指令覆盖传感器与翻译
音乐扩展提供击打 1 鼓、演奏音符 60 0.5 拍等积木。它和声音面板的区别在于可以编曲,音符 60 对应中音 C,每次增加 2 是半音。我尝试过用循环和变量生成旋律,比如用将 音高 设为 60,然后每次加 2,弹出上行音阶:
当绿旗被点击 将 音高 设为 60 重复执行 8 次 演奏音符 音高 0.5 拍 将 音高 增加 2参数里的“拍”是时长,0.5 拍大约是半秒,速度由节拍器决定,但实际操作中感觉 0.5 拍约等于 0.4 秒。想加快就把数值调小。
其它扩展比如“翻译”可以把台词逐句翻译成指定语言,积木是翻译 你好 到 英语,返回文本。这个扩展依赖网络服务,离线环境下会报错,所以比赛场景慎用。视频侦测扩展可以识别运动方向,但需要摄像头权限,课堂上经常因权限问题失败,我一般不用。
扩展的本质是给指令面板增加新积木,使用方式和内置积木一样,都遵循事件-控制-运算的组合逻辑。选扩展时先确认运行环境有没有网络、有没有摄像头,再决定。
5. 指令使用避坑:6 个最常翻车的积木组合
先说一个普遍现象:很多项目看起来逻辑没问题,但运行结果和想象完全不一样。这通常不是因为不会用某个积木,而是把几个积木组合在一起时踩了暗坑。我挑 6 个高频问题,每条按“现象→原因→解决”写清楚。
现象 1:绿旗点击后,程序只跑一遍就停住,角色停在原地。
原因:把重复执行放在等待之后,且循环体里没有让程序持续运行的条件。更常见的是忘记给循环体加等待,导致执行速度快到看起来像没跑。解决:检查循环内是否缺少等待 0.1 秒;如果用了移动 10 步,应该放在重复执行内部。
现象 2:克隆体生成后完全不动,或者克隆体消失。
原因:克隆体没有执行当作为克隆体启动时,而是将初始脚本放在当绿旗被点击下。克隆体不会触发绿旗事件,所以它没有任何行为。解决:把克隆体的动作指令放进“当作为克隆体启动时”里,并且记得给克隆体加一个等待,否则它可能在生成瞬间就执行完隐藏脚本。
现象 3:角色碰到障碍物时,碰撞检测一直触发,分数暴涨。
原因:碰到 角色的布尔值在角色接触的每一帧都为真,如果如果分支里直接加分,就会每秒加几十次。解决:加一个冷却变量,比如可拾取初始为 1,碰到后设为 0,等待 0.5 秒再恢复,或者用等待 0.3 秒临时跳过。
现象 4:角色在屏幕边缘移动时,坐标变得不可控,角色一半跑出界。
原因:用的是移动 10 步,没有约束边界。移动不会自动限制坐标,它只改变位置,超过 240 或 -240 的 x 值就会让角色超出舞台。解决:在移动后加判断:如果 x 坐标 > 240,则将 x 坐标设为 240。
现象 5:声音播放后,整个程序卡住几秒。
原因:用了播放声音 然后等待,它会等声音播完才执行下一条指令。如果声音时长 3 秒,循环就卡 3 秒。解决:确认是否需要等待。背景音乐用启动声音,重要提示音才用播放声音。
现象 6:多个角色同时用当绿旗被点击时,有的角色会晚启动。
原因:Scratch 的绿旗事件执行顺序是从上到下,但不保证在不同角色之间严格并行,尤其依赖网络或扩展时。解决:用广播做统一启动:所有角色用当接收到 开始,舞台用一个绿旗事件广播“开始”。这样所有角色几乎同时启动。
6. 从“查指令”到“写指令”:一个马上能上手的练手项目
最后我用一个简单的“数字猜谜”项目把前面所有积木组合串起来。这个项目用到事件、变量、侦测、运算、外观和控制,正好覆盖常见指令。完成之后你可以随意加造型和音效。
新建变量目标数字和猜的次数。绿旗事件里初始化,然后用侦测类询问用户输入,再判断大小。
当绿旗被点击 将 目标数字 设为 在 1 和 100 之间取随机数 将 猜的次数 设为 0 重复执行 询问 请猜一个 1 到 100 之间的数字 并等待 将 猜的次数 增加 1 如果 <回答 = 目标数字> 那么 说 连接 答对了!你猜了 猜的次数 次 2 秒 停止全部脚本 否则 如果 <回答 < 目标数字> 那么 说 太小了 1 秒 否则 说 太大了 1 秒 end end这里重复执行没有退出条件,完全靠停止全部脚本结束。注意回答是侦测面板里的变量,直接拖进来即可,不需要额外定义。连接只能拼两项,所以提示文案我分了两段。
我习惯在项目完成后加一个“重置按钮”:一个角色提示“再来一局”,点击后执行与绿旗相同的初始化积木。这时应该把初始化做成自制积木:
定义 初始化游戏 将 目标数字 设为 在 1 和 100 之间取随机数 将 猜的次数 设为 0然后绿旗事件和按钮点击都调用初始化游戏。这是自制积木最实用的场景——避免重复代码,也让逻辑更清晰。
验证项目是否正常,我一般按三条路径走:第一,输入 0 和 101 看边界能否正确提示;第二,连续输入相同数字,看猜的次数是否正确累加;第三,故意输错再答对,确认停止全部脚本真的终止了循环。
通过这个项目你会发现,Scratch 3.0 指令其实没有“大全”也没有“完全对照表”,真正值钱的是对每个积木行为边界的理解。比如回答是字符串还是数字、克隆体不响应绿旗、停止全部脚本会终止所有角色的脚本。这些经验不是看手册能得到的,需要自己跑一次、踩一次坑。这就是我为什么一直建议:与其抄别人的成品,不如把这份指令清单当索引,自己拼一个最小项目。有不懂的地方再翻面板,效果比什么都快。希望帮到你。
本文还有配套的精品资源,点击获取