控制積木 ( Control Blocks )
通常 Scratch 的積木流程為從上而下運作,控制積木 Control blocks 可以依據邏輯判斷或使用者觸發的行為,進一步控制流程,讓程式等待、重複或停止,甚至也可以製作角色的分身,做出更多角色的效果。
控制積木通常會搭配偵測積木或運算積木,可參考教學:Scratch 3 偵測積木、Scratch 3 運算積木
等待
「等待積木」可以讓程式暫停一段時間,有兩種類型:
- 等待幾秒:可以讓程式指定等待的秒數。
- 等待直到:的後方要接上邏輯判斷條件,當發生某些事情後,才會停止等待。
舉例來說,在程式中間插入三個等待一秒的積木,執行後就會每個一秒說出指定的文字。
下方的例子使用「等待直到」的積木,一開始角色會說出「等待中...」的文字,直到碰到滑鼠,才會停止等待,繼續說出「等待結束」的文字。
重複
「重複積木」可以重複執行放在內容區塊的程式,有三種類型:
- 重複幾次:指定內容程式要重複的次數。
- 重複無限次:讓內容程式不斷重複執行,因為是無限次的執行,所以後方無法接續其他積木。
- 重複直到:讓內容程式不斷重複執行,直到發生某些事情才會停止重複。
舉例來說,可以讓角色重複旋轉 20 度 18 次,每次旋轉都會變大 3 點,重複結束後變成原本的大小。
如果將重複幾次改成重複無限次,就可以讓角色重複無限次的旋轉 5 度 ( 角色會不斷的在原地旋轉 )。
如果將上方的例子換成「重複直到」的積木,判斷當角色碰到滑鼠時就會停止旋轉,恢復原本的角度並講出一些文字。
如果
「如果積木」是負責邏輯判斷的積木,在 Scratch 裡有兩種:
- 如果...那麼:單向判斷,表示「如果條件成立 ( true ),就執行,如果條件不成立 ( false ),就什麼都不執行」。
- 如果...否則:雙向判斷,表示「如果條件成立 ( true ),就執行『如果』下方的程式,若條件不成立 ( false ),就執行『否則』下方區域的程式」。
通常「如果積木」會搭配「重複積木」,例如將「如果...那麼」放在重複無限次的積木內,就能夠判斷當滑鼠碰到角色時,講出一段文字,滑鼠離開後過一秒文字就會消失。
將上面的例子改成「如果...否則」,就能夠做到滑鼠移上去時變色,滑鼠移開時恢復原本的顏色。
停止
「停止積木」可以停止程式的執行,下拉選單有三種模式:
- 全部:等同於按下舞台左上角的紅色八角形按鈕,專案中所有程式都會停止運作。
- 這個程式:停止這個停止積木所在的程式區塊。
- 這個物件的其他程式:停止這個停止積木所在的角色或背景的所有程式。
下面的例子是在舞台中放入兩個角色,分別讓兩個角色不斷旋轉,透過「停止全部」的積木,滑鼠點擊貓咪角色時,停止全部的程式,這時連同螃蟹角色都會停止旋轉。
如果將上面的例子,改成「停止這個物件的其他程式」,滑鼠點擊貓咪角色時,就只有貓咪角色會停止動作,螃蟹角色仍然持續旋轉。
「停止這個程式」只會停止這個停止積木所在的程式區塊,例如貓咪角色有兩段程式區塊,一段負責貓咪不斷重複旋轉,一段負責貓咪不斷重複變色,當滑鼠移到貓咪的身上,只會停止旋轉的動作,仍然會繼續變色。
分身
「分身積木」可以為角色建立分身,在需要大量地同一角色造型時相當實用,在 Scratch 裡,一次最多可以建立 300 個分身,分身積木有三種:
- 當分身產生:分身建立後,這個分身要執行什麼程式。
- 建立分身:針對角色本身,或其他角色建立分身。
- 分身刪除:一次刪除所有的分身,如果該積木放在「當角色被點擊」積木下方,只會刪除該分身。
下方的例子,點擊貓咪角色時,透過重複十次的積木產生十個分身,分身產生後定位到隨機位置並改變顏色,如果點擊分身,分身就會消失。
範例連結:建立分身與刪除分身
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~