Scratch 教程

通过拖拽积木,轻松学习编程思维

开始学习 前往题库 在线编程

🎮 Scratch 简介

🐱 什么是 Scratch?

🐱

Scratch 编程

让编程变得简单有趣!

Scratch 是由麻省理工学院(MIT)开发的一款可视化编程工具,专为儿童和青少年设计。它通过拖拽积木块的方式来编写程序,无需输入复杂的代码语法。

✨ Scratch 的特点
🧩
可视化编程

使用彩色积木块拼接程序,直观易懂

🎯
趣味十足

可以创建动画、游戏、故事等有趣的项目

🚀
易于上手

适合编程零基础的孩子学习

🎨
创意无限

丰富的角色和背景素材,激发创造力

💡 Scratch 是学习编程的最佳起点,能帮助孩子培养计算思维和问题解决能力,为后续学习其他编程语言打下坚实基础。

🎬 Scratch 的用途

🎬
制作动画

让角色动起来,创建有趣的动画故事

🎮
开发游戏

制作简单的小游戏,如追逐游戏、射击游戏

📖
互动故事

创建交互式故事,让读者参与其中

🔢
数学学习

通过编程学习数学概念

🎨
艺术创作

结合音乐和视觉效果进行艺术创作

🚀 开始使用 Scratch

你可以通过以下方式开始使用 Scratch:

🌐
在线版本

直接在浏览器中使用,无需安装

立即使用
💻
离线版本

下载安装包,在本地电脑上使用

下载软件
Scratch 3.0

最新版本,功能更强大,界面更友好

推荐使用

🖥️ 界面介绍

🎨 Scratch 界面布局

Scratch 界面主要分为四个区域:

🎭

舞台区

🐱

角色区

🧩

积木区

📝

脚本区

🎭 1. 舞台区 (Stage)

这是展示动画和游戏的区域,所有角色在这里表演。

  • 尺寸:宽 480 像素,高 360 像素
  • 坐标:x范围 -240 到 240,y范围 -180 到 180
  • 中心点:舞台中心坐标为 (0, 0)
🐱 2. 角色区 (Sprite List)

显示当前项目中的所有角色。每个角色可以有不同的造型和脚本。

  • 点击角色可以选中它
  • 可以添加、删除、复制角色
  • 每个角色有独立的脚本
🧩 3. 积木区 (Blocks Palette)

包含各种颜色的积木块,按功能分类:

  • ● 运动 - 控制角色移动
  • ● 外观 - 改变角色外观
  • ● 声音 - 播放声音
  • ● 事件 - 触发程序
  • ● 控制 - 控制流程
  • ● 侦测 - 检测状态
  • ● 运算 - 数学运算
  • ● 变量 - 存储数据
  • ● 自制积木 - 自定义功能
📝 4. 脚本区 (Scripts Area)

这是编写程序的地方。从积木区拖拽积木到这里,拼接成完整的脚本。

  • 拖拽积木到脚本区
  • 积木可以拼接组合
  • 右键可以删除积木
💡 角色默认是一只可爱的小猫。你可以通过点击角色区的"选择角色"按钮来更换角色。

🎭 角色与造型

每个角色可以有多个造型,通过切换造型可以实现动画效果。

🎭

角色造型切换

让角色动起来!

📝 如何添加造型?
1️⃣

选中要添加造型的角色

2️⃣

点击"造型"标签页

3️⃣

点击"选择造型"按钮

4️⃣

从造型库中选择喜欢的造型

🎨 你也可以使用"绘制造型"功能自己绘制独一无二的角色造型!

🧩 积木块形状分类

Scratch 利用不同的形状对指令进行区分,不同形状的积木具有不同的效果。

🎩 帽子形积木

用于启动程序,只能作为指令串的第一个指令使用。

  • 上面没有缺口
  • 下面有凸起
  • 前面不能拼接其他积木
当绿旗被点击
🔵 椭圆形积木

使用时会有一个返回值(数字或字符串),作为其他指令的参数使用。

  • 没有缺口和凸起
  • 返回一个值
  • 用作参数输入
(10) + (5)
🔷 菱形积木

返回一个布尔值(true或false),用于条件判断。

  • 六边形形状
  • 返回真或假
  • 用于条件判断
碰到 [鼠标指针]?
📦 长方形积木

Scratch中数量最多的积木,可以上下拼接。

  • 左侧有凹陷和凸柱
  • 可以拼接组合
  • 按顺序执行
移动 (10) 步
👄 开口形积木

像一张张开的大嘴,可以将长方形积木拼接在里面。

  • 包含重复执行积木
  • 包含条件分支积木
  • 可以嵌套其他积木
重复执行 (10) 次
💡 小技巧:不同形状的积木只能填入对应形状的输入框里,就像拼图一样!椭圆形积木填入椭圆形孔,菱形积木填入菱形孔。

🔔 事件模块

🎯 什么是事件?

事件是程序的触发条件,告诉角色什么时候开始执行脚本。所有脚本都需要以事件积木开头。

🔔

事件积木

程序的触发器

📌 常用事件积木
当绿旗被点击

最常用的事件,点击绿色旗帜开始运行程序

当角色被点击

当用鼠标点击角色时触发

当按下空格键

当按下键盘上的空格键时触发

当按下 [空格] 键

可以选择任意键盘按键作为触发条件

当接收到 [消息]

通过消息机制实现角色之间的通信

当舞台被点击

当点击舞台空白区域时触发

📨 消息通信

消息通信是角色之间传递信息的重要方式。一个角色可以发送消息,其他角色接收消息后执行相应的脚本。

📨

消息通信

角色之间的对话

📤
发送消息
发送消息 [消息1]

立即发送消息给所有角色

发送消息并等待
发送消息 [消息1] 并等待

发送消息后等待接收方完成脚本

💡 使用消息通信可以让多个角色协同工作,比如一个角色发出指令,其他角色做出响应。

🏃 运动模块

🚶 移动角色

运动模块的积木可以让角色在舞台上移动、旋转和改变位置。

🏃

运动积木

让角色动起来

🎯 基本移动积木
移动 (10) 步

让角色向前移动指定步数(1步=1像素)

右转 (15) 度

让角色顺时针旋转指定度数

左转 (15) 度

让角色逆时针旋转指定度数

移到 [随机位置]

将角色移动到随机位置、鼠标指针或其他角色位置

移到 x: (0) y: (0)

将角色移动到指定坐标位置

在 (1) 秒内滑行到 x: (0) y: (0)

在指定时间内平滑移动到目标位置

面向 (90) 方向

设置角色的朝向(0度向上,90度向右)

面向 [鼠标指针]

让角色面向鼠标指针或其他角色

将 x 坐标增加 (10)

让角色水平移动(正数向右,负数向左)

🧭 方向与坐标

舞台是一个二维坐标系,中心是原点 (0, 0)。

🧭

坐标系

舞台的位置系统

📐 坐标系说明
↔️
X 坐标

左右方向,范围 -240 到 240

↕️
Y 坐标

上下方向,范围 -180 到 180

🧭
方向

0度向上,90度向右,180度向下,270度向左

📍 坐标与方向积木
将 x 坐标设为 (0)

设置角色的 x 坐标(水平位置)

将 y 坐标增加 (10)

让角色垂直移动(正数向上,负数向下)

将 y 坐标设为 (0)

设置角色的 y 坐标(垂直位置)

x 坐标

获取角色当前的 x 坐标值

y 坐标

获取角色当前的 y 坐标值

方向

获取角色当前的朝向

⚠️ 当角色移到舞台边缘时,如果没有设置边界检测,角色可能会"消失"在舞台外。记得添加边界判断!

🏀 弹跳与旋转方式

碰到边缘就反弹

角色碰到舞台边缘时自动反弹,类似光在镜面的反射

将旋转方式设为 [左右翻转]

设置角色旋转时的外观效果(左右翻转/不可旋转/任意旋转)

💡 旋转方式说明:
左右翻转: 角色只能左右翻转,适合横向移动的角色
不可旋转: 角色始终保持原始方向
任意旋转: 角色可以任意角度旋转

🎨 外观模块

✨ 改变角色外观

外观模块的积木可以改变角色的大小、颜色、显示状态等。

外观积木

改变角色的样子

📏 大小与显示
将大小增加 (10)

增大或减小角色的尺寸(正数变大,负数变小)

将大小设为 (100) %

设置角色的缩放比例(100%为原始大小)

大小

获取角色当前的大小值

显示

显示隐藏的角色

隐藏

隐藏角色(角色不可见但仍可被侦测)

移到最前面

将角色移到所有角色的最前面

✨ 特效与层级

可以为角色添加各种特效,并控制角色在舞台中的层级。

将 [颜色] 特效增加 (25)

增加或减少角色的特效值

将 [颜色] 特效设为 (0)

设置角色的特效值

清除特效

清除所有特效,恢复默认状态

📖 特效类型:
颜色: 改变角色颜色(0-200)
鱼眼: 从中部扩展或收缩
漩涡: 从中部旋转扭曲
像素化: 使角色模糊
马赛克: 分裂成多个小角色
亮度: 调整明暗
虚像: 添加透明效果

🎭 造型与背景切换

通过切换造型可以创建动画效果,切换背景可以改变舞台场景。

🎭

造型与背景

创建动画和场景切换

🎨 造型切换
下一个造型

按照造型编号顺序切换到下一个造型

换成 [造型1] 造型

切换到指定名称或编号的造型

造型编号

获取当前造型的编号

🖼️ 背景切换
换成 [背景1] 背景

切换到指定名称或编号的背景

下一个背景

按照背景编号顺序切换到下一个背景

背景编号

获取当前背景的编号

💡 创建走路动画:添加多个走路造型,然后使用"下一个造型"和"等待"积木循环播放。

💬 文字显示

可以让角色说出或思考文字,与用户进行交互。

说 (你好!)

在角色旁边显示说话气泡(不会自动消失)

说 (你好!) (2) 秒

显示说话气泡指定时间后自动消失

思考 (嗯......)

在角色旁边显示思考气泡

思考 (嗯......) (2) 秒

显示思考气泡指定时间后自动消失

🔊 声音模块

🎵 播放声音

声音模块可以添加背景音乐和音效,让作品更加生动。

🎵

声音积木

添加音效和音乐

🎶 播放声音积木
播放声音 [喵] 等待播完

播放完整声音后再执行下一个积木

播放声音 [喵]

播放声音的同时继续执行后续积木

停止所有声音

停止正在播放的所有声音

🎚️ 控制音量与节奏

将音量增加 10

增大或减小音量

将音量设为 100%

设置音量大小

将音调增加 10

改变声音的音调

🎤 你可以从声音库中选择预设声音,也可以录制自己的声音!

🎮 控制模块

📋 指令的执行方式

当你需要程序完成某个任务时,需要告诉它一系列具体的指令,就像做菜时的菜谱一样。在Scratch中,代码区中的每一个积木就是一条指令,可以让舞台中的角色或背景实现特定的操作。控制模块用于控制指令串的执行方式。

🎮

控制积木

控制程序流程

🔄 四种执行方式
1️⃣ 顺序执行

在一个指令串中,每个指令会按照先后顺序依次执行。Scratch中的指令可以上下拼接,按照从上至下的顺序依次执行。

当绿旗被点击
移动 (10) 步
说 (你好!)
💡 就像菜谱中的操作步骤,需要一步一步按顺序操作。
2️⃣ 循环执行

某些指令会连续多次重复使用,可以将重复部分放入重复指令中,让其多次执行。

重复执行 (10) 次
💡 就像你要重复做同一个动作多次,比如跳绳100下。
3️⃣ 条件分支

某些指令需要满足一定条件才会执行,可以使用条件分支进行判断。

如果 <> 那么
💡 就像你来到一个分叉路口,只能选择其中一条路继续前行。
4️⃣ 并行执行

多个指令串可以同时执行,让角色同时完成多个操作。多个相同事件积木会被同时触发,并行执行多个指令串。

当绿旗被点击
当绿旗被点击
💡 就像你可以一边看书,一边听歌。

🔄 循环结构

循环可以让一段代码重复执行,是控制模块的核心功能之一。

重复执行 (10) 次

重复执行放入该积木中的指令串指定次数

重复执行

无限次重复执行,可使用停止积木结束

重复执行直到 <>

无限循环,直到条件为真时停止

💡 "重复执行直到"积木非常有用,可以实现游戏的主循环或等待特定条件。

❓ 条件判断

条件判断可以让程序根据不同情况执行不同的代码,是实现游戏逻辑的关键。

如果...那么
如果 <> 那么

当参数返回true时,执行积木中的指令串

如果...那么...否则
如果 <> 那么
否则

条件为真执行第一个代码块,否则执行第二个

📖 嵌套条件判断: 将多个条件判断积木嵌套执行,可以实现更复杂的逻辑判断。例如:先判断是否碰到边缘,再判断是否碰到敌人。

⏸️ 等待与停止

等待 (1) 秒

暂停执行指定时间

等待直到 <>

等待直到条件为真

停止 [全部脚本]

停止所有脚本/当前脚本/其他脚本

👥 克隆功能

克隆可以创建角色的副本,用于制作多个相同的角色。

克隆 [自己]

创建角色的克隆体(最多300个)

当作为克隆体启动时

克隆体创建时执行的脚本

删除此克隆体

删除当前克隆体

⚠️ 克隆体越多,作品运行越卡顿。当克隆体不再需要时,应及时删除。

👁️ 侦测模块

💥 侦测碰撞

侦测模块可以检测角色之间的碰撞和其他事件。

👁️

侦测积木

感知周围环境

碰到 [鼠标指针]?

检测是否碰到鼠标或其他角色

碰到 [颜色]?

检测是否碰到指定颜色

颜色 [颜色] 碰到 [颜色]?

检测两个颜色是否接触

🖱️ 鼠标与键盘

鼠标 x

获取鼠标的 X 坐标

鼠标 y

获取鼠标的 Y 坐标

按下 [空格] 键?

检测指定按键是否被按下

💡 使用"按下键?"积木可以实现键盘控制角色移动的游戏。

⏱️ 其他侦测功能

计时器

获取从绿旗点击开始的时间(秒)

重置计时器

将计时器重置为 0

询问 [你好?] 并等待

显示对话框,等待用户输入

📝 "询问"积木返回用户输入的字符串,可以保存在变量中供后续使用。

🔢 运算模块

🧮 数学运算

运算模块包含数学运算和逻辑判断积木。

🔢

运算积木

数学和逻辑运算

➕ 基础运算
[10] + [5]

加法

[10] - [5]

减法

[10] × [5]

乘法

[10] ÷ [5]

除法

🎯 高级运算
取余数 [10] mod [3]

求余数(模运算)

四舍五入 [3.7]

四舍五入取整

随机数 [1] 到 [10]

生成指定范围的随机数

⚖️ 比较运算

比较运算用于比较两个值的大小,返回布尔值(true或false)。

[10] = [5]

等于

[10] > [5]

大于

[10] < [5]

小于

📖 比较运算说明:
• 比较两个数字时,按数字大小进行比较
• 比较两个字符串时,使用字符对应的ASCII码进行比较
• 英文字母不区分大小写

🔗 逻辑运算

逻辑运算用于组合多个条件,返回布尔值(true或false)。

与 (AND)
<> 与 <>

两个条件都为真时结果为真

或 (OR)
<> 或 <>

至少一个条件为真时结果为真

不成立 (NOT)
<> 不成立

取反,真变假,假变真

📖 逻辑运算真值表:
: true 与 true = true, 其他情况都为 false
: false 或 false = false, 其他情况都为 true
不成立: true 不成立 = false, false 不成立 = true

📝 字符串运算

字符串运算用于处理文本数据,包括连接、查找、获取字符等操作。

连接 (苹果) 和 (香蕉)

将两个字符串连接在一起

(苹果) 的第 (1) 个字符

获取字符串中指定位置的字符

(苹果) 的长度

获取字符串的字符数量

(苹果香蕉) 包含 (苹果)?

判断字符串是否包含指定文本

(苹果) 在 (苹果香蕉) 中的位置

查找文本在字符串中的位置

📦 变量与列表

🏷️ 什么是变量?

变量是存储数据的容器,可以保存数字、字符串等信息。

📦

变量

存储数据的盒子

📝 创建变量
1️⃣

点击"变量"标签页

2️⃣

点击"创建变量"按钮

3️⃣

输入变量名称

4️⃣

选择变量作用域

🔧 变量操作积木
将 [分数] 设为 [0]

设置变量的初始值

将 [分数] 增加 [1]

修改变量的值

[分数]

使用变量的值

📋 列表

列表是存储多个数据的容器,可以用来保存一组相关的数据。

📋

列表

存储多个数据的容器

📝 创建列表
1️⃣

点击"变量"标签页

2️⃣

点击"创建列表"按钮

3️⃣

输入列表名称

4️⃣

选择列表作用域

🔧 列表操作积木
添加 [苹果] 到 [水果列表]

向列表末尾添加元素

删除 [水果列表] 的第 [1] 项

删除指定位置的元素

清空 [水果列表]

清空列表中所有元素

[水果列表] 的第 [1] 项

获取列表中指定位置的元素

在 [水果列表] 中查找 [苹果] 的位置

查找元素在列表中的位置

[水果列表] 的长度

获取列表中元素的数量

🧩 自制积木

🎨 什么是自制积木?

自制积木允许你创建自己的积木块,将常用的代码组合封装成一个可重复使用的积木。这样可以简化程序结构,提高代码的可读性和复用性。

🧩

自制积木

创建属于你自己的积木块

📝 创建自制积木
1️⃣

点击"自制积木"标签页

2️⃣

点击"创建积木"按钮

3️⃣

输入积木名称

4️⃣

定义积木的功能

🔧 自制积木的使用

创建自制积木后,你可以像使用其他积木一样使用它。

定义 [我的积木]

定义自制积木的功能(帽子形积木)

我的积木

使用自制积木(长方形积木)

💡 自制积木的优点:
代码复用: 将常用代码封装成积木,避免重复编写
结构清晰: 让程序更容易理解和维护
易于修改: 修改积木定义,所有使用该积木的地方都会更新

⚙️ 添加参数

自制积木可以添加参数,使其更加灵活。

📖 参数类型:
数字或文本: 输入数字或文本参数
布尔值: 输入真或假
标签: 添加文字标签说明参数用途
定义 [画正方形] 边长: (50)

带数字参数的自制积木

画正方形 边长: (100)

使用带参数的自制积木

⚠️ 自制积木只能在当前角色中使用。如果需要在多个角色中使用相同的积木,需要在每个角色中分别创建。

💡 实战项目

🐱 项目1:会说话的小猫

让小猫在点击时说出问候语。

🐱💬

会说话的小猫

点击小猫,它就会说话!

📝 步骤:
1️⃣

从事件模块拖拽 当角色被点击

2️⃣

从外观模块拖拽 说 "你好!"

3️⃣

将两块积木拼接在一起

4️⃣

点击绿色旗帜运行,然后点击小猫测试

⚽ 项目2:移动的小球

创建一个使用方向键控制移动的小球。

⚽🎮

移动的小球

用方向键控制小球移动!

📝 步骤:
1️⃣

添加一个圆形角色作为小球

2️⃣

使用 当绿旗被点击 开始

3️⃣

使用 重复执行直到 创建循环

4️⃣

在循环中添加条件判断控制方向

🏃 项目3:简单的追逐游戏

创建一个角色追逐鼠标的游戏。

🏃🎮

追逐游戏

看看谁能追上谁!

📝 步骤:
1️⃣
添加角色

添加两个角色:玩家和追逐者

2️⃣
玩家控制

玩家角色:使用键盘控制移动

3️⃣
追逐者AI

追逐者角色:面向玩家并移动

💡 提示:使用 面向 [玩家] 角色移动 5 步 让追逐者追着玩家跑!

💻 在线编程

🌐 Scratch 在线编辑器

无需安装软件,直接在浏览器中打开 Scratch 在线编辑器,即可开始创作你的动画和游戏作品!

💻🎮

在线编程

随时随地开始创作!

💡 在线工具是测试版本,支持作品保存在本地或打开本地的作品。如遇在线工具无法使用,请下载下方离线版软件。

离线编程工具下载

如果你更习惯在本地电脑上编程,可以下载以下离线编程工具,无需联网即可使用。

Scratch Desktop

Scratch 官方离线版编辑器,支持 Windows 和 macOS

百度网盘下载

无需翻墙,高速下载 Windows 和 macOS 版本

Windows提取码: bakv | macOS提取码: 0lna

恭喜你完成 Scratch 教程学习!

继续学习更多高级内容,挑战编程竞赛!

微信客服二维码

扫码添加微信客服 (加好友时请备注:小码豆)