2018/09/29


近幾個月的週末, 萊恩大兵自己帶兒子玩 Scratch.

包括萊恩大兵在内, 學習程式語言最初的挫折, 就是在新手村照範例按步驟打怪很輕鬆愉快. 走出新手村時, 卻是各種問題各種不順都會發生, 對付一隻史萊姆都很吃力. 因此, 萊恩大兵的想法, 就是以自訂專題的型式, 讓小朋友們多寫程式並自己想辦法解決問題. 

經過幾次專題實作的經驗, 萊恩大兵發現遊戲互動類型的題目, 是最能引發小朋友的興趣與熱度的. 


第六次專題的題目, 就選定 Atari 的經典遊戲~ 打隕石 (Asteroids). 




它的畫面雖然只是黑底加上簡單的幾何圖形, 其實遊戲玩起來挺刺激的. 剛好藉這個機會, 讓咱家兒子品嚐一下早年遊戲的醍醐味.

功能要求為:
[1] 遊戲要有開始與結束畫面.
[2] 遊戲進行時, 會從四面八方隨機飛入隕石. 隕石砸中飛行器, 遊戲即結束.
[3] 玩家用鍵盤控制飛行器上下左右移動以躲避隕石, 或可發射子彈擊碎隕石.
[4] 較大塊的隕石被子彈擊中時, 會分裂成兩塊較小的隕石, 並改變飛行路線.
[5] 遊戲背景底圖要有變化, 呈現飛行器有在移動的效果.

咱家兒子經過太空侵略者的磨練, 做到移動飛行器或發射子彈的功能都不是難事. 

比較麻煩的是要從四面八方隨機飛入隕石. 這時就是萊恩大兵做為指導者表現的時刻了. 萊恩大兵給的提示為:


  • 將遊戲空間分為四個象限.
  • 隨機選擇任一象限, 取其邊緣任一位置做為隕石飛行路徑的起點.
  • 再從另外三個象限擇一, 取其邊緣任一位置做為隕石飛行路徑的終點.
  • 起點與終點都有了, 就可設定隕石的出現時機與移動速度.


Willie 編寫的程式碼, 看來是有理解萊恩大兵給的提示.




遊戲背景底圖是用三張星空圖做變換




另外也做了飛行器爆炸效果




整體來看是有表現出遊戲的趣味性, 雖然程式細節上仍有 bug 要修正, 這個就再慢慢進步吧.

[萊恩大兵的其它文章]

自製大四軸

CC2540 Bluetooth Low Energy

OpenCV 學習路徑

小惡魔 無線溫度感測器


0 意見:

張貼留言