(本文更新時間:2020-06-19)
一直想了解下十分流行的小遊戲《炸彈人》後端大致的代碼結構和程序邏輯是怎麼樣的,但又苦於大型遊戲項目代碼行數太多,沒時間閱讀。終於在GitHub上找到一個代碼量僅900行的Java《炸彈人》遊戲HAW-PO-LA-Bomberman。
1.項目下載
(1)Github項目首頁
(2)CSDN資源下載
2.項目簡介
HAW-PO-LA-Bomberman是一個非常簡單的《炸彈人》Demo,是HAW-PO-LA-Bomberman-TeamLKT的子項目。(HAW-PO-LA-Bomberman-TeamLKT主要用於研究強化學習(reinforced learning)AI算法。)
這個遊戲不包含AI,也沒有複雜的UI,所以代碼非常精煉,適合初學者進行源碼剖析。
(注:如果你正在尋找包含AI算法的炸彈人遊戲,請參閱文末的Bombermaaan項目)
代碼量:878行 (前端:237行,後端:641行)(包含註釋:1353行)
前端GUI:使用JDK中的AWT和Swing庫繪製GUI(未調用第三方遊戲引擎)
3.項目要點
(1)後端與前端代碼分離,耦合性低。
(2)通過遞歸,巧妙地實現了Bomb爆炸後鏈式引爆相鄰的Bomb(代碼位於Game.java/chainExplosions()函數中)
(3)有多個參數是可配置的(配置參數須在GuiMain.java中修改)
(4)細節:可同時放置多個Bomb,定時器互不影響;防止Bomb的衝擊波穿透牆壁……
4.代碼簡要分析
4.1 後端UML類圖
4.2 類-簡要說明
(1)後端:
(2)前端:
5.更進一步
覺得這個項目太LOW了? 美工太簡陋? 想找個帶AI算法的企業級炸彈人遊戲?
請移步:Bombermaaan-最好的開源炸彈人遊戲(SFC復刻版,支持AI人機對戰)