久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:113日期:2022-08-13 15:51:06
項(xiàng)目地址

https://github.com/SCNU-A225/CrazyArcade

示例圖片

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

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

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

平滑碰撞

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

其它特性 音樂 使用配置文件擴(kuò)展游戲 道具 單/雙人模式使用打包文件

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

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

下載最新版文件,并解壓縮 克隆或下載該項(xiàng)目,打開RELEASE->DIST文件夾 項(xiàng)目文件

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

使用git克隆或直接下載該項(xiàng)目 使用Eclipse等導(dǎo)入該Java項(xiàng)目由于編譯使用的Java版本可能不一致,如果提示錯(cuò)誤請根據(jù)您電腦的環(huán)境修改項(xiàng)目配置 編譯并運(yùn)行GameStart.java游戲入口文件聲明

該項(xiàng)目是練習(xí)項(xiàng)目,沒有參與任何商業(yè)行為。

主要代碼

游戲啟動入口

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);//強(qiáng)制刷新,否則監(jiān)聽無效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;}}

代碼過多,不便全部放出,獲取完整項(xiàng)目,前往https://github.com/SCNU-A225/CrazyArcade

以上就是JAVA實(shí)現(xiàn)的CrazyArcade泡泡堂游戲的詳細(xì)內(nèi)容,更多關(guān)于Java CrazyArcade泡泡堂游戲的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 高雄县| 团风县| 景德镇市| 方城县| 土默特右旗| 天峨县| 樟树市| 保山市| 襄樊市| 天全县| 湖州市| 宜君县| 敦化市| 嘉兴市| 那坡县| 哈密市| 二连浩特市| 商洛市| 樟树市| 莒南县| 达州市| 商南县| 五台县| 珲春市| 普陀区| 获嘉县| 平原县| 安溪县| 华安县| 多伦县| 甘南县| 漾濞| 洛川县| 红原县| 桐庐县| 珲春市| 扎囊县| 琼海市| 扬中市| 思茅市| 龙江县|