搜尋

遊戲積木

micro:bit 的遊戲積木預設了簡單的遊戲機制,可以創建一個角色並賦予角色生命值,透過角色的移動和碰撞,進行遊戲計分或增減角色生命值,輕鬆實作簡單的 micro:bit LED 小遊戲。

遊戲積木有幾個分類:創建角色刪除角色如果角色被刪除角色移動角色旋轉設定角色狀態讀取角色狀態角色是否碰到其他角色角色是否碰到邊緣角色碰到邊緣就反彈生命設定得分設定開始倒數遊戲結束 / 繼續 / 暫停遊戲狀態

創建角色

「創建角色」積木可以在指定的 LED 矩陣座標裡,建立一個「角色」,角色在畫面中就是一顆亮起的 LED 燈, 「需要搭配變數積木」才能使用

micro:bit - 遊戲積木 ( 創建角色 )

下圖的例子在 micro:bit 啟動後,使用變數 sprite 建立一個位在 (2,2) 的角色,在 LED 的正中間就會亮起一顆燈。

micro:bit - 遊戲積木 ( 創建角色 )

刪除角色

「刪除角色」積木可以刪除角色,刪除角色後,角色在 LED 的顯示燈號就會消失。

micro:bit - 遊戲積木 ( 刪除角色 )

如果角色被刪除

「如果角色被刪除」積木是一個邏輯判斷積木,可以顯示角色是否被刪除,如果角色已經被刪除就是 true,如果角色尚未被刪除就是 false

micro:bit - 遊戲積木 ( 如果角色被刪除 )

角色移動

「角色移動」積木可以讓角色在畫面中移動,預設水平方向移動,向右為正,向左為負,如果搭配「角色旋轉」積木,可以往其他方向移動。

micro:bit - 遊戲積木 ( 角色移動 )

下圖的例子,micro:bit 啟動後會再 (2,2) 的位置建立角色,按下 A 按鈕時角色會往左邊移動,按下 B 按鈕時角色往右邊移動。

micro:bit - 遊戲積木 ( 角色移動 )

micro:bit - 遊戲積木 ( 角色移動 )

角色旋轉

「角色移動」積木可以指定角色向右或向左旋轉的角度,每 45 度為一個區間,可分成 0、45、90、135、180、225、270、315...等,依此類推。

micro:bit - 遊戲積木 ( 角色旋轉 )

下圖的例子,micro:bit 啟動後會再 (2,2) 的位置建立角色,並先讓角色「向右旋轉 45 度」,按下 A 按鈕時角色就會往左上角移動,按下 B 按鈕時角色就會往右下角移動。

micro:bit - 遊戲積木 ( 角色旋轉 )

micro:bit - 遊戲積木 ( 角色移動 )

設定角色狀態

「設定角色狀態」積木可以設定或改變角色的 x 座標、y 座標、亮度和閃爍的數值 ( 使用「改變」會從當前數值進行增加或減少 )。

  • x 座標:水平方向座標,範圍 0~4。
  • y 座標:垂直方向座標,範圍 0~4。
  • 方向:旋轉角度,建議每 45 度為一個區間。
  • 亮度:角色的 LED 燈亮度,範圍 0~255,0 最暗,255 最亮。
  • 閃爍:角色的 LED 閃爍速度,單位是毫秒 ( 1/1000 秒 ),設定 0 則角色恆亮,不會閃爍。

micro:bit - 遊戲積木 ( 設定角色狀態 )

下圖的例子,micor:bit 創建角色後,點擊 A 按鈕會設定角色亮度為 10,點擊 B 按鈕設定角色亮度為 255。

micro:bit - 遊戲積木 ( 設定角色狀態 )

micro:bit - 遊戲積木 ( 設定角色狀態 )

讀取角色狀態

「讀取角色狀態」積木可以讀取角色的 x 座標、y 座標、亮度和閃爍的數值。

micro:bit - 遊戲積木 ( 讀取角色狀態 )

角色是否碰到其他角色

「角色是否碰到其他角色」積木可以偵測兩個角色是否互相碰到 ( 兩個角色座標相同 ),如果有碰到就是 true,沒有碰到就是 false

micro:bit - 遊戲積木 ( 角色是否碰到其他角色 )

下圖的例子,micor:bit 啟動後會用 a 和 b 兩個變數建立兩個角色 ( b 角色亮度較暗 ),按下 A 按鈕時角色 a 會往左移,按下 B 按鈕時角色 a 會往右移,透過重複無限次積木,判斷當 a 碰到 b 時讓 a 閃爍,如果沒有碰到則停止閃爍。

micro:bit - 遊戲積木 ( 角色是否碰到其他角色 )

micro:bit - 遊戲積木 ( 角色是否碰到其他角色 )

角色是否碰到邊緣

「角色是否碰到邊緣」積木可以偵測角色是否碰到邊緣,左右邊緣的 x 座標為 0 和 4,上下邊緣的 y 座標為 0 和 4。

micro:bit - 遊戲積木 ( 角色是否碰到邊緣 )

下圖的例子,micor:bit 啟動後會建立一個角色 a,按下 A 按鈕時角色 a 會往左移,按下 B 按鈕時角色 a 會往右移,透過重複無限次積木,判斷當 a 碰到邊緣時就會閃爍,如果沒有碰到則停止閃爍。

micro:bit - 遊戲積木 ( 角色是否碰到邊緣 )

micro:bit - 遊戲積木 ( 角色是否碰到邊緣 )

角色碰到邊緣就反彈

「角色碰到邊緣就反彈」積木可以偵測角色在「移動時」是否碰到邊緣,如果有碰到,就進行反彈的動作。

micro:bit - 遊戲積木 ( 角色碰到邊緣就反彈 )

下圖的例子,micor:bit 啟動後會建立一個角色 a,向右旋轉 45 度,透過重複無限次積木,讓 a 每 100 毫秒移動 1 點,並設定碰到邊緣就反彈。

micro:bit - 遊戲積木 ( 角色碰到邊緣就反彈 )

micro:bit - 遊戲積木 ( 角色碰到邊緣就反彈 )

生命設定

「生命設定」積木可以設定角色的「生命」,並可以透過一些遊戲機制,「增加生命」或「減少生命」,當「生命為 0」的時候,LED 就會「自動出現」 GAME OVER 的文字跑馬燈,並且顯示分數,表示遊戲結束。

micro:bit - 遊戲積木 ( 生命設定 )

下圖的例子,micor:bit 啟動後會用 a 和 b 兩個變數建立兩個角色 ( b 角色亮度較暗 ),以及生命設定為 1,按下 A 按鈕時角色 a 會往左移,按下 B 按鈕時角色 a 會往右移,判斷當 a 碰到 b 時讓生命減少 1,如果生命為 0 就會自動出現 GAME OVER 跑馬燈動畫。

micro:bit - 遊戲積木 ( 生命設定 )

micro:bit - 遊戲積木 ( 生命設定 )

得分設定

「得分設定」積木可以設定角色的「得分」,並可以透過一些遊戲機制改變 ( 增加或減少 ) 得分,預設當遊戲結束時,會自動顯示得分,也可以設計手動的方式 ( 例如按下按鈕 ),顯示得分 ( 顯示得分過一秒之後,會再度回到遊戲畫面 )。

micro:bit - 遊戲積木 ( 生命設定 )

下圖的例子,micor:bit 啟動後會用 a 和 b 兩個變數建立兩個角色 ( b 角色亮度較暗 ),以及分數設定為 0,按下 A 按鈕時角色 a 會往左移,按下 B 按鈕時角色 a 會往右移,每次按下按鈕時,判斷當 a 碰到 b 時讓得分增加 1,AB 同時按下時,顯示分數。

micro:bit - 遊戲積木 ( 得分設定 )

micro:bit - 遊戲積木 ( 得分設定 )

開始倒數

「開始倒數」積木可以設定一段時間,並且開始倒數計時,時間單位是毫秒 ( 1/1000 秒 ),倒數結束後,LED 就會「自動出現」 GAME OVER 的文字跑馬燈,並且顯示分數

注意,倒數結束表示「遊戲結束」,會停止 micro:bit 所有功能直到重新啟動

micro:bit - 遊戲積木 ( 開始倒數 )

下圖的例子,micor:bit 啟動後會用 a 和 b 兩個變數建立兩個角色 ( b 角色亮度較暗 ),以及分數設定為 0 並且開始倒數計時 10 秒 ( 10000ms ),按下 A 按鈕時角色 a 會往左移,按下 B 按鈕時角色 a 會往右移,每次按下按鈕時,判斷當 a 碰到 b 時讓得分增加 1,當倒數結束,就會顯示分數。

micro:bit - 遊戲積木 ( 開始倒數 )

遊戲結束 / 繼續 / 暫停

「遊戲結束 / 繼續 / 暫停」積木可以設定遊戲狀態,「遊戲暫停」和「遊戲繼續」積木是在「更多」選單裡。

  • 遊戲結束:結束遊戲,出現跑馬燈動畫以及顯示分數 ( 遊戲結束會讓所有功能停止運作,直到重啟 micro:bit )。
  • 遊戲暫停:所有遊戲動作暫停 ( 但還是會繼續倒數 )
  • 遊戲繼續:取消暫停,繼續遊戲動作。

micro:bit - 遊戲積木 ( 遊戲結束 / 繼續 / 暫停 )

遊戲狀態

「遊戲狀態」積木可以以邏輯 true 或 false 的方式,表現遊戲目前的狀態。

  • 遊戲已經結束:遊戲結束 ( true ),遊戲尚未結束 ( false )。
  • 遊戲暫時停止:遊戲暫停 ( true ),遊戲正在運行 ( false )。
  • 遊戲正在運行:遊戲正在運行 ( true ),遊戲暫停 ( false )。

micro:bit - 遊戲積木 ( 遊戲狀態 )

micro:bit 教學

基本介紹

關於 micro:bit micro:bit 硬體規格 micro:bit 開發方式 使用 MakeCode 開始控制 micro:bit

程式積木

基本 輸入 輸入 ( V2 ) 輸入 ( 更多 ) 音效 音效 ( V2 ) 燈光 燈光 ( 更多 ) 廣播 廣播 ( 更多 ) 迴圈 邏輯 變數 數學

進階積木

函式 陣列 文字 圖像 遊戲 引腳 引腳 ( 更多、V2 ) 控制 序列

擴展積木

超音波 ( 偵測距離 ) 溫濕度 伺服馬達 紅外線接收 紅外線發射 MAX7219 點矩陣 LCD1602 顯示器 OLED1306 顯示器 TM1637 七段顯示器

入門範例

跳動的心 簡單煙火動畫 倒數計時放煙火 剪刀石頭布 ( 按鈕 ) 搖骰子 一直向下的箭頭 指北針 長條圖顯示亮度 光影魔術手 愛心呼吸燈 按鈕秀文字 按鈕計數器 晃動計步器 顯示隨機圖案 空中傳愛 ( 廣播 ) 超時空跑馬燈 ( 廣播 ) 長條圖顯示音量 ( V2 ) 拍手換圖案 ( V2 ) 翻轉大黃蜂音效 ( V2 )

燈光範例

燈光繞圈 ( 座標 ) 燈光繞圈 ( 數字函式 ) 循環霹靂燈 依序點燈 ( 座標 ) 依序點燈 ( 數字函式 ) 隨機不重複的燈 按鈕依序開關燈 平衡燈 ( 姿勢 ) 平衡燈 ( 旋轉感測 ) 陣列點燈 ( 顯示圖形 ) 陣列點燈 ( 動畫 ) 移動速度不同的燈

遊戲範例

小瑪莉遊戲機 射擊幽浮 記憶大考驗 翻轉吃豆子 猴子接香蕉 老鼠走迷宮 吃角子老虎機 太鼓達人 貪吃蛇 心電感應 ( 廣播 )

電子元件範例

閃爍的 LED 燈 全彩 LED 光線變化 長條圖顯示土壤濕度 小夜燈 ( 光敏電阻 ) LED 顯示溫濕度 LCD1602 顯示溫濕度 超音波倒車雷達 七段顯示器顯示距離 人體紅外線偵測 旋鈕控制 LED 亮度 電流急急棒 OLED 繪製數學圖形 觸碰開燈 ( 引腳按下 ) 觸碰開燈 ( 類比訊號 ) 水果鋼琴 ( 類比訊號 )