JAVA實現的CrazyArcade泡泡堂遊戲
項目地址
https://github.com/SCNU-A225/CrazyArcade
示例圖片
項目結構
- frame:包含如開始、遊戲中、結束的JFrame
- main:包含程序入口和其它遊戲控制
- model:
- model.loader:包含資源加載器用於讀取配置文件等信息,使用瞭單例設計模式
- model.manager:包含元素管理器、工廠等,用於控制遊戲各元素
- model.vo:各種實體類,包括玩傢、NPC、炸彈、方塊等等
- pro:配置文件目錄,包含人物、道具、地圖、方塊、遊戲設置等配置文件
- thread:配合遊戲一起執行的各種線程,如音樂、鍵盤監聽、遊戲控制等
- utiil:工具包
機器人
為瞭盡量復原泡泡堂遊戲,我們初步實現瞭機器人功能。該機器人可以判斷障礙物釋放炸彈、規避炸彈、攻擊玩傢。目前該機器人仍存在一些小問題,比如某些情況會卡住不動
平滑碰撞
人物在拐角處移動的時候經常不是剛好對齊的狀態,程序會判定玩傢碰撞瞭障礙物所以導致玩傢無法拐彎。所以我們在處理這種情況的時候,會讓玩傢進行平滑的移動使得玩傢看上去是滑進去的,增強玩傢遊戲體驗
其它特性
- 音樂
- 使用配置文件擴展遊戲
- 道具
- 單/雙人模式
使用
打包文件
如果您僅是想試玩該泡泡堂遊戲,那麼可以選擇以下方式獲得打包文件夾,並執行其中的CrazyArcade.jar文件
註意:無論您使用哪種方式,在運行程序之前請確保您安裝瞭JRE環境
- 下載最新版文件,並解壓縮
- 克隆或下載該項目,打開RELEASE->DIST文件夾
項目文件
如果您是想獲取該項目源代碼進行參考、學習或者修改,可以按以下步驟進行
- 使用git克隆或直接下載該項目
- 使用Eclipse等導入該Java項目
- 由於編譯使用的Java版本可能不一致,如果提示錯誤請根據您電腦的環境修改項目配置
- 編譯並運行GameStart.java遊戲入口文件
聲明
該項目是練習項目,沒有參與任何商業行為。
主要代碼
遊戲啟動入口
package com.a225.main; import java.io.IOException; import com.a225.frame.GameFrame; import com.a225.model.loader.ElementLoader; import com.a225.thread.GameMusicPlayer; /** * 遊戲啟動入口 * @ClassName: GameStart * @Description: * @author: WeiXiao * @CreateDate: 2019年4月8日 下午4:17:37 */ public class GameStart { private static GameFrame gameFrame; //遊戲啟動入口 public static void main(String[] args) { // 資源加載 try { ElementLoader.getElementLoader().readGamePro(); ElementLoader.getElementLoader().readImagePro(); ElementLoader.getElementLoader().readCharactorsPro(); ElementLoader.getElementLoader().readBubblePro(); ElementLoader.getElementLoader().readSquarePro(); } catch (IOException e) { System.out.println("資源加載失敗"); e.printStackTrace(); } //初始化 gameFrame = new GameFrame(); //界面顯示 gameFrame.setVisible(true); //音樂播放 GameMusicPlayer musicPlayer = new GameMusicPlayer(); musicPlayer.start(); } /** * 界面切換 * @param panelName 界面名稱 */ public static void changeJPanel(String panelName){ if(panelName == "game") { GameController.setGameRunning(true); gameFrame.addListener(); } else { GameController.setGameRunning(false); gameFrame.removeListener(); } gameFrame.changePanel(panelName); //強制刷新,否則監聽無效 gameFrame.setVisible(false); gameFrame.setVisible(true); } public static void startNewGame() { GameController.setGameRunning(true); gameFrame.startGame(); changeJPanel("game"); } }
遊戲控制信息類
package com.a225.main; /** * 遊戲控制信息類 * @ClassName: GameController * @Description: * @author: WeiXiao * @CreateDate: 2019年4月12日 上午9:13:13 */ public class GameController { private static boolean gameRunning = false; private static boolean twoPlayer; private static int npcNum; public static boolean isGameRunning() { return gameRunning; } public static void setGameRunning(boolean gameRunning) { GameController.gameRunning = gameRunning; } public static boolean isTwoPlayer() { return twoPlayer; } public static void setTwoPlayer(boolean twoPlayer) { GameController.twoPlayer = twoPlayer; } public static int getNpcNum() { return npcNum; } public static void setNpcNum(int npcNum) { GameController.npcNum = npcNum; } }
代碼過多,不便全部放出,獲取完整項目,前往https://github.com/SCNU-A225/CrazyArcade
以上就是JAVA實現的CrazyArcade泡泡堂遊戲的詳細內容,更多關於Java CrazyArcade泡泡堂遊戲的資料請關註WalkonNet其它相關文章!