教學原文參考:太鼓達人
這篇文章會大量使用「陣列」的操作,搭配「變數」、「邏輯判斷」、「點亮」、「[計次迴圈」、「邏輯判斷」等積木,在 micro:bit 實作一個類似太鼓達人的節奏小遊戲。
太鼓達人是一款用按鈕和 LED 燈互動的節奏小遊戲 ( 如果能搭配蜂鳴器的音效更好 ),遊戲開始後,會有鼓點 ( 光點 ) 按照一定的節奏,從上而下移動,當鼓點移動到指定位置時,按下 A 或 B 按鈕進行「打鼓」的動作,如果有打到則得分。
如果使用 micro:bit 實作,遊戲操作步驟如下:
- 同時按下 AB 按鈕,開始遊戲 ( 或重新遊戲 )。
- 按下 A 按鈕,在指定位置打擊左側鼓點。
- 按下 B 按鈕,在指定位置打擊右側鼓點。
- 鼓點被打鼓後就會消失,得分加一。
- 如果有三次沒有打鼓成功,遊戲結束,顯示得分。
首先設計「一串鼓點」的移動,因為有鼓點不會只有一點,所以使用陣列來呈現:
新增一個重複無限次積木,製作燈號從上往下移動的動畫效果:
不用擔心 y 如果大於 4 或小於 0,點亮或不點亮的積木,會自動忽略超過範圍的數值。
完成後啟動 micro:bit,就會看見燈光不斷往下移動。
因為遊戲開始時,鼓點會從最上方出現,所以要修改程式:
完成後,啟動 micro:bit 就能看到燈號不是從最下面出發,而是從最上方開始移動。
了解原理後,將啟動時的陣列,全部搬移到「當按下 A+B 按鈕」積木裡,作為遊戲開始使用:
將打鼓模式的積木,複製一份到「當按下 A 按鈕」的積木裡。
接著修改 a 陣列的重複無限次積木:
新增一個重複無限次積木,判斷 end 等於 0 的時候,顯示分數,並將 run 設定為 0 ( 表示遊戲結束 )。
最後,如法泡製,新增另外一個 b 陣列以及按下 B 按鈕的程式 ( 基本上都和 a 相同 ),就能做到同時有兩個鼓點出現的效果。完成後,啟動 micor:bit,就可以開始進行太鼓達人的遊戲。
範例解答:太鼓達人
對於「陣列」的應用不熟悉,該如何開始呢?
可以先參考以下三篇文章,幫助自己釐清陣列操作 LED 的觀念:陣列點燈 ( 顯示圖形 )、陣列點燈 ( 動畫 )、移動速度不同的燈。
為什麼 A+B 按鈕也要判斷「run 是否等於 1」?
因為太鼓達人在遊戲過程中,常常會出現 A+B 按鈕一起按下的狀況,為了不讓「啟動」和「遊戲」搞混,所以要多增加「run 是否等於 1」的判斷。
大家好,我是 OXXO,是個即將邁入中年的斜槓青年,如果對我有點興趣(笑,可以與我聯繫,一起來做點有玩又有創意的東西吧!