搜尋

函式積木 ( My Blocks )

當 Scratch 程式越來越複雜時,常常會有許多需要重複執行的積木,這時可以透過函式積木 ( My Blocks ) 將這些積木獨立出來,變成可以重複使用的元件或功能,如此一來除了可以大幅減少程式複雜度,更能增加程式編輯的彈性。

函式積木有幾個重點:建立函式使用函式添加輸入輸入方塊添加說明文字回傳結果

建立函式

點擊「函式積木」選單裡「建立一個積木」的按鈕,就能夠建立自己的函式積木。

Scratch 教學 - 函式積木 My Blocks - 建立函式

點擊後,會彈出建立函式積木的視窗,視窗裡主要分成上下兩個部分:

  • ( 上半部 ) 設定函式:設定函式名稱、預覽積木的長相。
  • ( 下半部 ) 設定函式參數:設定函式內使用的參數或說明文字,如果勾選「執行完畢再更新畫面」,在函式執行時不會一步步動作,而是直接顯示函式處理的最終結果 ( 增加執行效率 )。

Scratch 教學 - 函式積木 My Blocks - 建立函式

建立函式後,選單裡會出現一個「使用函式」的積木,同時在編輯區域也會看到一個「定義函式」的積木。

Scratch 教學 - 函式積木 My Blocks - 建立函式

如果要編輯函式積木長相,只要在定義函式積木上方,按下滑鼠右鍵,選擇「編輯」,就能編輯函式積木。

Scratch 教學 - 函式積木 My Blocks - 編輯函式積木

如果要刪除函式,只要將編輯區的定義函式積木刪除,選單裡的函式積木也會跟著消失 ( 如果有函式積木有被使用,則無法刪除 )。

Scratch 教學 - 函式積木 My Blocks - 刪除函式積木

使用函式

使用函分成兩個部分:

  • ( 編輯區 ) 定義函式積木:下方擺放函式執行時要運行的積木程式。
  • ( 選單區 ) 函式積木:作為一般積木使用,使用時會執行該函式定義的積木內容

舉例來說,下圖的左邊,定義了一個 test 函式,裡面的積木可以讓角色重複五次,每隔 0.5 秒進行像素化的圖像效果,接著在點擊角色時,執行這個函式,執行的效果等同於右邊的積木組合。

Scratch 教學 - 函式積木 My Blocks - 使用函式 積木

如果專案裡有多個角色,都要使用同樣一組函式積木,就可以利用 Scratch 的「背包」功能,將定義好的函式積木用滑鼠拖曳放到背包中,就能讓其他角色使用 ( 背包功能只有用瀏覽器開啟的線上版 Scratch 才能使用 )。

Scratch 教學 - 函式積木 My Blocks - 將函式積木放入背包

添加輸入方塊

建立函式時,點選下方的「添加輸入方塊」,就能夠添加數字、文字或布林值的參數,如果要刪除參數,只要點選積木長相裡的參數,上方就會出現垃圾桶的按鈕,點擊垃圾桶就能刪除參數。

Scratch 教學 - 函式積木 My Blocks - 函式添加輸入方塊

舉例來說,新建立一個函式積木,放入兩個名為 a 和 b 的參數。

Scratch 教學 - 函式積木 My Blocks - 函式添加輸入方塊

當函式積木有 a 和 b 參數時,定義函式積木就能使用這兩個參數,下圖的例子會在函式執行時,讓角色說出 a 乘以 b 的結果。

Scratch 教學 - 函式積木 My Blocks - 函式添加輸入方塊

放入點擊角色的積木,在點擊角色時執行函式,說出兩個數字相乘的結果。

Scratch 教學 - 函式積木 My Blocks - 函式添加輸入方塊

添加說明文字

添加說明文字可以在定義的函式積木裡增加文字,讓函式更容易辨識。

Scratch 教學 - 函式積木 My Blocks - 函式添加輸入方塊

回傳結果

在一些專案裡,函式的功能不僅是把積木程式包裝起來,更會在執行後回傳結果,若要做到回傳結果的功能,就必須搭配「變數」,下方的例子,就是透過變數來記錄 a 和 b 相乘的結果,執行後點擊角色,角色就會說出 3 乘以 4 等於 12 的結果。

Scratch 教學 - 函式積木 My Blocks - 函式添加輸入方塊

意見回饋

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

Scratch 教學

基本介紹

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

圖形與聲音

繪製造型&背景 編輯音效

程式積木

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

擴充功能

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

技巧&觀念

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

入門範例

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

進階範例

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

視覺特效範例

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

繪圖範例

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

物理&模擬範例

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

入門遊戲範例

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

進階遊戲範例

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

團康遊戲範例

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

遊戲設計技巧

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