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