跳到主要內容
Micro:bit教學 / 射擊遊戲

射擊幽浮

這篇文章會介紹如何使用「建立遊戲角色」、「遊戲角色座標」、「遊戲角色碰撞」、「變數」、「[重複迴圈」、「邏輯判斷」等積木,在 micro:bit 實作一個射擊幽浮的射擊小遊戲。

遊戲方式 

射擊幽浮是一款簡單的射擊小遊戲,遊戲開始後,畫面上方會出現一個逐漸往下移動的 UFO,使用者需要操控下方砲塔發射炮彈阻止幽浮往下移動,當砲彈擊中幽浮,幽浮會消失並重新從上方出現,再次向下移動,若幽浮碰到地面,遊戲結束,顯示得分。

如果使用 micro:bit 實作,遊戲操作步驟如下:

  • 同時按下 AB 按鈕,開始遊戲 ( 或重新遊戲 )。
  • 按下 A 按鈕,控制砲塔向左移動
  • 按下 B 按鈕,控制砲塔向右移動
  • 遊戲開始後按下 AB 按鈕,可以發射炮彈
  • 砲彈擊中幽浮,得分加 1,幽浮再度從最上方隨機位置出現。
  • 幽浮抵達地面,遊戲結束,顯示得分。

micro:bit - 射擊幽浮

積木程式原理 

當啟動時,先定義遊戲啟動與遊戲角色的變數:

  • 變數 run:數值 0,判斷遊戲是否開始 ( 0 表示遊戲尚未開始,1 表示開始 )。
  • 變數 player:砲塔遊戲角色,創建於 (2,4) 座標。
  • 變數 bullet:砲彈遊戲角色,創建於 (0,4) 座標,亮度 0 ( 不顯示 )。
  • 變數 ufo:幽浮遊戲角色,創建於 (2,0) 座標,亮度 0 ( 不顯示 )。

micro:bit - 射擊幽浮

因為按下 AB 按鈕有兩種動作,一種是啟動遊戲,另一種是發射砲彈,所以程式要加入邏輯判斷:

  • 判斷 run 等於 0 ( 遊戲尚未開始或遊戲結束 ) 時:
    • 設定 run 為 1 ( 遊戲開始 )。
    • 設定 score 分數為 0。
    • 設定 fire 開火狀態為 0。
    • 遊戲繼續 ( 搭配遊戲結束時的遊戲暫停 )。
    • 設定 ufo 角色的位置、亮度。
  • 判斷 run 不等於 0 時 ( 表示遊戲開始或遊戲正在進行 ):
    • 設定 fire 開火狀態為 1 ( 開火 )。

micro:bit - 射擊幽浮

接著設計按下 A 按鈕和 B 按鈕時,移動砲塔的程式:

  • 按下 A 按鈕時,fire 開火狀態設定 0 ( 不開火 ),砲塔角色往左移動。
  • 按下 B 按鈕時,fire 開火狀態設定 0 ( 不開火 ),砲塔角色往右移動。

micro:bit - 射擊幽浮

新增一個重複無限次積木,製作砲彈移動的程式:

  • 判斷如果 run 等於 1 表示遊戲正在進行。
  • fire 變更為 0,避免重複開火 ( 不然程式會變得較複雜 )。
  • 將砲彈移動到砲塔的位置,改變亮度為 30
  • 使用重複 4 次積木,讓砲彈從下移動到頂端
  • 移動到頂端後,砲彈亮度改為 0 隱藏砲彈,並將砲彈移動到最下方

micro:bit -射擊幽浮

新增第二個重複無限次積木,製作砲彈打到幽浮的程式:

  • 判斷如果 run 等於 1 表示遊戲正在進行。
  • 判斷如果砲彈 bullet 碰到幽浮 ufo
  • 得分 score 增加 1。
  • 幽浮角色再度移動到頂端 ( x 為 0~4 隨機數,y 為 0 )。

micro:bit - 射擊幽浮

最後新增第三個重複無限次積木,製作幽浮往下移動的程式:

  • 判斷如果 run 等於 1 表示遊戲正在進行。
  • 每次重複讓 ufo 的 y 座標改變 1 ( 往下移動 )。
  • 如果 ufo 的 y 等於 4,表示撞到地面,run 改為 0 ( 遊戲結束 )。
  • 使用遊戲暫停積木,避免遊戲角色影響畫面顯示
  • 遊戲結束後,使用重複迴圈顯示得分 score ( 使用迴圈是為了不斷顯示兩位數得分 )。
  • 使用暫停積木,設定 ufo 移動速度。

micro:bit - 射擊幽浮

完成後,啟動 micro:bit,就可以開始進行設計幽浮的遊戲。

micro:bit - 射擊幽浮

消息公佈欄

時間類別單位標題發佈點閱

跳至網頁頂部