在這一集中,我們將基於上集的彈跳像素程序,將其擴展成單人 Pong 遊戲。玩家將透過按鈕控制玩家像素的上下移動,並需要與彈跳像素互動,若未成功阻擋即會結束遊戲。


課程大綱

  1. 複習彈跳像素的實現
    • 檢查先前的代碼,確保彈跳像素能在 LED 矩陣上隨牆壁反彈移動。
  2. 設置玩家控制的像素(“擋板”)
    • 新增兩個按鈕分別作為上下控制。
    • 將按鈕分別連接至 Arduino 的數位引腳 11(向上)和 12(向下)。
    • 在代碼中為每個按鈕設置引腳和變量。
  3. 設置玩家像素位置與移動
    • 將玩家像素固定於列 0(最左側),使用按鈕控制行位置。
    • 按下按鈕時調整 my_row,在每次循環中更新玩家像素的位置。
  4. 加入玩家像素與彈跳像素的互動邏輯
    • 檢測當彈跳像素到達列 0 時玩家是否在同一行上。
    • 若玩家像素成功擋住彈跳像素,則彈跳像素反彈;若未成功阻擋,則顯示 “遊戲結束”。
  5. 遊戲速度調整與優化
    • 控制玩家像素移動速度加快,同時降低遊戲像素的速度,使玩家更有時間反應。
    • 透過一個計數器 CNT 實現玩家與彈跳像素的速度差,提供更具挑戰性的遊戲體驗。