国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

JAVA實(shí)現的CrazyArcade泡泡堂游戲

發(fā)布時(shí)間:2021-07-06 11:12 來(lái)源:腳本之家 閱讀:0 作者:JiangJian1998 欄目: 開(kāi)發(fā)技術(shù)

目錄

      項目地址

      示例圖片

      項目結構

      • frame:包含如開(kāi)始、游戲中、結束的JFrame
      • main:包含程序入口和其它游戲控制
      • model:
        • model.loader:包含資源加載器用于讀取配置文件等信息,使用了單例設計模式
        • model.manager:包含元素管理器、工廠(chǎng)等,用于控制游戲各元素
        • model.vo:各種實(shí)體類(lèi),包括玩家、NPC、炸彈、方塊等等
      • pro:配置文件目錄,包含人物、道具、地圖、方塊、游戲設置等配置文件
      • thread:配合游戲一起執行的各種線(xiàn)程,如音樂(lè )、鍵盤(pán)監聽(tīng)、游戲控制等
      • utiil:工具包

      機器人

      為了盡量復原泡泡堂游戲,我們初步實(shí)現了機器人功能。該機器人可以判斷障礙物釋放炸彈、規避炸彈、攻擊玩家。目前該機器人仍存在一些小問(wèn)題,比如某些情況會(huì )卡住不動(dòng)

      平滑碰撞

      人物在拐角處移動(dòng)的時(shí)候經(jīng)常不是剛好對齊的狀態(tài),程序會(huì )判定玩家碰撞了障礙物所以導致玩家無(wú)法拐彎。所以我們在處理這種情況的時(shí)候,會(huì )讓玩家進(jìn)行平滑的移動(dòng)使得玩家看上去是滑進(jìn)去的,增強玩家游戲體驗

      其它特性

      •  音樂(lè )
      •  使用配置文件擴展游戲
      •  道具
      •  單/雙人模式

      使用

      打包文件

      如果您僅是想試玩該泡泡堂游戲,那么可以選擇以下方式獲得打包文件夾,并執行其中的CrazyArcade.jar文件

      注意:無(wú)論您使用哪種方式,在運行程序之前請確保您安裝了JRE環(huán)境

      • ,并解壓縮
      • 克隆或下載該項目,打開(kāi)RELEASE->DIST文件夾

      項目文件

      如果您是想獲取該項目源代碼進(jìn)行參考、學(xué)習或者修改,可以按以下步驟進(jìn)行

      1. 使用git克隆或直接下載該項目
      2. 使用Eclipse等導入該Java項目
      3. 由于編譯使用的Java版本可能不一致,如果提示錯誤請根據您電腦的環(huán)境修改項目配置
      4. 編譯并運行GameStart.java游戲入口文件

      聲明

      該項目是練習項目,沒(méi)有參與任何商業(yè)行為。

      主要代碼

      游戲啟動(dòng)入口

        
      package com.a225.main;
      
      import java.io.IOException;
      
      import com.a225.frame.GameFrame;
      import com.a225.model.loader.ElementLoader;
      import com.a225.thread.GameMusicPlayer;
      
      /**
       * 游戲啟動(dòng)入口
       * @ClassName: GameStart  
       * @Description:  
       * @author: WeiXiao
       * @CreateDate: 2019年4月8日 下午4:17:37
       */
      public class GameStart {
      	private static GameFrame gameFrame;
      
      	//游戲啟動(dòng)入口
      	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);
      		//音樂(lè )播放
      		GameMusicPlayer musicPlayer = new GameMusicPlayer();
      		musicPlayer.start();
      	}
      	
      	/**
      	 * 界面切換
      	 * @param panelName 界面名稱(chēng)
      	 */
      	public static void changeJPanel(String panelName){
      		if(panelName == "game") {
      			GameController.setGameRunning(true);
      			gameFrame.addListener();
      		} else {
      			GameController.setGameRunning(false);
      			gameFrame.removeListener();
      		}
      		gameFrame.changePanel(panelName);
      	
      		//強制刷新,否則監聽(tīng)無(wú)效
      		gameFrame.setVisible(false);
      		gameFrame.setVisible(true);
      	}
      	
      	public static void startNewGame() {
      		GameController.setGameRunning(true);
      		gameFrame.startGame();
      		changeJPanel("game");
      	}
      
      }

      游戲控制信息類(lèi)

      package com.a225.main;
      
      /**
       * 游戲控制信息類(lèi)
       * @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;
      	}
      }

      代碼過(guò)多,不便全部放出,獲取完整項目,前往

      以上就是JAVA實(shí)現的CrazyArcade泡泡堂游戲的詳細內容,更多關(guān)于Java CrazyArcade泡泡堂游戲的資料請關(guān)注腳本之家其它相關(guān)文章!

      免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

      久久久久久A亚洲欧洲AV| 亚洲AV无码乱码精品国产| 精品一二三区久久AAA片| 国产乱来乱子视频| 99品一二三产区区别| 性天堂AV系列|