搜尋

控制積木 ( Control Blocks )

通常 Scratch 的積木流程為從上而下運作,控制積木 Control blocks 可以依據邏輯判斷或使用者觸發的行為,進一步控制流程,讓程式等待、重複或停止,甚至也可以製作角色的分身,做出更多角色的效果。

控制積木有幾個分類:等待重複如果 停止分身

控制積木通常會搭配偵測積木或運算積木,可參考教學:Scratch 3 偵測積木Scratch 3 運算積木

等待

「等待積木」可以讓程式暫停一段時間,有兩種類型:

  • 等待幾秒:可以讓程式指定等待的秒數。
  • 等待直到:的後方要接上邏輯判斷條件,當發生某些事情後,才會停止等待

Scratch 教學 - 控制積木 Control blocks - 等待積木

舉例來說,在程式中間插入三個等待一秒的積木,執行後就會每個一秒說出指定的文字。

Scratch 教學 - 控制積木 Control blocks - 等待

下方的例子使用「等待直到」的積木,一開始角色會說出「等待中...」的文字,直到碰到滑鼠,才會停止等待,繼續說出「等待結束」的文字。

Scratch 教學 - 控制積木 Control blocks -  等待直到

重複

「重複積木」可以重複執行放在內容區塊的程式,有三種類型:

  • 重複幾次:指定內容程式要重複的次數。
  • 重複無限次:讓內容程式不斷重複執行,因為是無限次的執行,所以後方無法接續其他積木
  • 重複直到:讓內容程式不斷重複執行,直到發生某些事情才會停止重複。

Scratch 教學 - 控制積木 Control blocks -  重複積木

舉例來說,可以讓角色重複旋轉 20 度 18 次,每次旋轉都會變大 3 點,重複結束後變成原本的大小。

Scratch 教學 - 控制積木 Control blocks -  重複幾次

如果將重複幾次改成重複無限次,就可以讓角色重複無限次的旋轉 5 度 ( 角色會不斷的在原地旋轉 )。

Scratch 教學 - 控制積木 Control blocks -  重複無限次

如果將上方的例子換成「重複直到」的積木,判斷當角色碰到滑鼠時就會停止旋轉,恢復原本的角度並講出一些文字。

Scratch 教學 - 控制積木 Control blocks -  重複無限次

如果

「如果積木」是負責邏輯判斷的積木,在 Scratch 裡有兩種:

  • 如果...那麼單向判斷,表示「如果條件成立 ( true ),就執行,如果條件不成立 ( false ),就什麼都不執行」。
  • 如果...否則雙向判斷,表示「如果條件成立 ( true ),就執行『如果』下方的程式,若條件不成立 ( false ),就執行『否則』下方區域的程式」。

Scratch 教學 - 控制積木 Control blocks -  如果積木

通常「如果積木」會搭配「重複積木」,例如將「如果...那麼」放在重複無限次的積木內,就能夠判斷當滑鼠碰到角色時,講出一段文字,滑鼠離開後過一秒文字就會消失。

Scratch 教學 - 控制積木 Control blocks -  如果那麼

將上面的例子改成「如果...否則」,就能夠做到滑鼠移上去時變色,滑鼠移開時恢復原本的顏色。

Scratch 教學 - 控制積木 Control blocks -  如果否則

停止

「停止積木」可以停止程式的執行,下拉選單有三種模式:

  • 全部:等同於按下舞台左上角的紅色八角形按鈕,專案中所有程式都會停止運作。
  • 這個程式:停止這個停止積木所在的程式區塊。
  • 這個物件的其他程式:停止這個停止積木所在的角色或背景的所有程式。

Scratch 教學 - 控制積木 Control blocks -  停止積木

下面的例子是在舞台中放入兩個角色,分別讓兩個角色不斷旋轉,透過「停止全部」的積木,滑鼠點擊貓咪角色時,停止全部的程式,這時連同螃蟹角色都會停止旋轉。

Scratch 教學 - 控制積木 Control blocks -  停止全部

如果將上面的例子,改成「停止這個物件的其他程式」,滑鼠點擊貓咪角色時,就只有貓咪角色會停止動作,螃蟹角色仍然持續旋轉。

Scratch 教學 - 控制積木 Control blocks -  停止這個物件的其他程式

「停止這個程式」只會停止這個停止積木所在的程式區塊,例如貓咪角色有兩段程式區塊,一段負責貓咪不斷重複旋轉,一段負責貓咪不斷重複變色,當滑鼠移到貓咪的身上,只會停止旋轉的動作,仍然會繼續變色。

Scratch 教學 - 控制積木 Control blocks -  停止這個程式

分身

「分身積木」可以為角色建立分身,在需要大量地同一角色造型時相當實用,在 Scratch 裡,一次最多可以建立 300 個分身,分身積木有三種:

  • 當分身產生:分身建立後,這個分身要執行什麼程式。
  • 建立分身:針對角色本身,或其他角色建立分身。
  • 分身刪除:一次刪除所有的分身,如果該積木放在「當角色被點擊」積木下方,只會刪除該分身。

Scratch 教學 - 控制積木 Control blocks -  分身

下方的例子,點擊貓咪角色時,透過重複十次的積木產生十個分身,分身產生後定位到隨機位置並改變顏色,如果點擊分身,分身就會消失。

範例連結:建立分身與刪除分身

Scratch 教學 - 控制積木 Control blocks -  分身

Scratch 教學 - 控制積木 Control blocks -  停止這個程式

意見回饋

如果有任何建議或問題,可傳送「意見表單」給我,謝謝~

Scratch 教學

基本介紹

關於 Scratch 使用 Scratch 3 註冊與登入 操作介面 我的東西

圖形與聲音

繪製造型&背景 編輯音效

程式積木

積木種類 動作 外觀 音效 事件 控制 偵測 運算 變數 清單 函式積木

擴充功能

音樂 畫筆 視訊偵測 文字轉語音 翻譯

技巧&觀念

全域變數、區域變數 深入理解區域變數 控制指定分身 控制所有分身的方法 雲端變數 雲端變數記錄文字 變數串接文字 判斷英文字母大小寫 中斷與停止程式 廣播訊息並等待 鍵盤與滑鼠 滑鼠點擊與長按 點擊隱藏的角色 突破角色尺寸限制 角色與舞台邊界 重複積木的等待時間 音樂暫停與繼續播放 使用造型名稱建立清單 使用造型代替變數 文字轉清單 清單合併為文字 判斷兩個清單是否相同 複製清單、反轉清單 清單數字排序 清單最大值最小值

入門範例

鍵盤控制貓咪 指向中間的箭頭 水果音樂鋼琴 貓咪的影分身之術 貓咪的細胞分裂 螃蟹跑來跑去 吃水果 摸蝴蝶 小狗追棒球 魚兒水中游 小鳥往前飛 舞棍阿伯 小時鐘 搖骰子 轉動的眼球 抽獎輪盤 大樂透電腦選號 卡牌抽籤 ( 20 中 1 ) 移動到邊緣切換場景 人物依序跳舞 ( 廣播 ) 按鈕控制貓咪 ( 廣播 )

進階範例

貓咪跑步 ( 連續背景 ) 貓咪跑步 ( 超長背景 ) 大型數字 ( 圖形數字 ) 拖拉怪獸碰撞牆壁 鍵盤鋼琴 ( 記錄音符 ) 中文字逐字稿 英文字逐字稿 計算機 1 ( 顯示數字 ) 計算機 2 ( 加減乘除 ) 雲端聊天室 音樂播放器 推貓咪 ( 視訊偵測 ) 圍捕小魚 ( 視訊偵測 ) 戳泡泡 ( 視訊偵測 )

視覺特效範例

視差效果 水中吐泡泡 雪花隨風飄 鍵盤鋼琴 ( 音符動畫 ) 無限循環畫中畫 水底探照燈 狙擊望遠鏡 ( 兩倍變焦 ) 貓咪萬花筒 仙女棒 ( 光跡效果 ) 駭客任務背景特效 放煙火 1 ( 往上發射 ) 放煙火 2 ( 爆炸效果 )

繪圖範例

鏡射畫圖 ( 對稱圖形 ) 小畫家 ( 舞台上畫圖 ) 記錄畫圖軌跡 繪製圓形 繪製橢圓形 繪製立方體 ( 會動 ) 繪製正多邊形 繪製正多角星形 ( 單純 ) 繪製正多角星形 ( 多線 ) 繪製拋物線 繪製折線圖 繪製圓餅圖 繪製圓餅圖 ( 指示線 ) 蜘蛛結網 ( 八邊形網 ) 繪製舞台方格 繪製正弦波形 ( sin ) 正弦波毛毛蟲動畫 顯示聲波圖形

物理&模擬範例

鐘擺運動 簡單磁鐵效果 兩個磁鐵的磁力線 立體空間 ( 三度空間 ) 循跡移動 拋物線發射炮彈 地球繞著太陽轉 彈跳的籃球 電風扇 ( 控制強度 ) 拉不走的彈力球 慣性移動 ( 滑鼠 ) 慣性移動 ( 鍵盤 )

入門遊戲範例

猴子接香蕉 打地鼠 打地鼠 ( 體感視訊偵測 ) 刮刮樂 吹風機吹頭髮 太空狗閃躲隕石 九九乘法測驗 英文單字測驗 釣魚遊戲 拍西瓜 ( 儲存最高分 ) 寶可夢猜猜我是誰 ( 基本 ) 形狀配對拼圖 台灣地圖拼圖 英文打字機 英文打字機 ( 判斷大小寫 ) 射擊外星人 猜數字 ( 猜大小 ) 猜數字 ( 幾 A 幾 B ) 連連看 ( 產生器 ) 連連看

進階遊戲範例

青蛙過河 青蛙過馬路 反彈球 ( 乒乓球 ) 打磚塊 狙擊氣球 ( 兩倍變焦 ) Flappy Bird Flappy Bird ( 聲控版 ) 走迷宮 ( 基本 ) 大型迷宮 ( 鍵盤控制 ) 大型迷宮 ( 滑鼠控制 ) 翻卡記憶遊戲 翻卡記憶遊戲 ( 改良版 ) 井字棋 ( 圈圈叉叉 ) 九宮格拼圖 九宮格拼圖 ( 改良版 ) 音階記憶 貪吃蛇 ( 分身版 ) 貪吃蛇 ( 畫筆版 ) 小雞下樓梯 拉霸機

團康遊戲範例

搖骰子 ( 1~3 個 ) 比手畫腳 ( 猜動物 ) 音樂傳球遊戲 大聲公 ( 比賽誰的氣長 ) 抽籤 ( 可調整中籤數量 ) 轉盤指針 ( 指到誰就當鬼 ) 倒數計時器 ( 基本版 ) 倒數計時器 ( 大數字版 )

遊戲設計技巧

角色 ( 地上移動 ) 角色 ( 蹲下、左右轉 ) 角色 ( 跳耀、兩段跳 ) 角色 ( 牆壁、爬牆 ) 地圖 ( 清單轉換 ) 地圖 ( 二維陣列 ) 地圖 ( 控制移動 ) 地圖 ( 牆壁碰撞偵測 ) 地圖 ( 吃東西偵測 ) 俄羅斯方塊 ( 角色與背景 ) 俄羅斯方塊 ( 移動與碰撞 ) 俄羅斯方塊 ( 放置方塊 ) 俄羅斯方塊 ( 消除完成方塊 ) 俄羅斯方塊 ( 下個形狀 )