最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年04月25日 15:39:55   作者:JiangJian1998  
CrazyArcade泡泡堂游戲,一款用Java編寫的JavaSwing游戲程序。 使用了MVC模式,分離了模型、視圖和控制器,使得項目結(jié)構(gòu)清晰易于擴展,使用配置文件來設(shè)置游戲基本配置,擴展地圖人物道具等。同時,該程序編寫期間用了單例模式、工廠模式、模板模式等設(shè)計模式。

項目地址

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

示例圖片

項目結(jié)構(gòu)

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

機器人

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

平滑碰撞

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

其它特性

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

使用

打包文件

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

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

項目文件

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

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

聲明

該項目是練習項目,沒有參與任何商業(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);
	
		//強制刷新,否則監(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;
	}
}

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

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

相關(guān)文章

  • 使用Spring的StopWatch實現(xiàn)代碼性能監(jiān)控的方法詳解

    使用Spring的StopWatch實現(xiàn)代碼性能監(jiān)控的方法詳解

    在開發(fā)過程中,偶爾還是需要分析代碼的執(zhí)行時間,Spring 框架提供了一個方便的工具類 StopWatch,本文將介紹 StopWatch 的基本用法,并通過示例演示如何在項目中使用 StopWatch 進行代碼性能監(jiān)控
    2023-12-12
  • Java ArrayList的底層實現(xiàn)方法

    Java ArrayList的底層實現(xiàn)方法

    今天小編就為大家分享一篇Java ArrayList的底層實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • MyBatis-plus實現(xiàn)逆向生成器

    MyBatis-plus實現(xiàn)逆向生成器

    本文主要介紹了MyBatis-plus實現(xiàn)逆向生成器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • SpringBoot項目中application.yml和bootstrap.yml文件的區(qū)別及說明

    SpringBoot項目中application.yml和bootstrap.yml文件的區(qū)別及說明

    `application.yml`和`bootstrap.yml`都是Spring Boot項目中的配置文件,但它們在加載時機、用途、優(yōu)先級、配置來源、適用場景和是否必須存在等方面存在區(qū)別
    2025-03-03
  • 使用Java反射獲取方法的全路徑名稱的步驟

    使用Java反射獲取方法的全路徑名稱的步驟

    Java反射是一個強大的特性,它允許程序在運行時查詢和修改類的行為,反射可以用于實現(xiàn)很多高級功能,比如動態(tài)代理、依賴注入等,本文將介紹如何使用Java反射來實現(xiàn)這一功能,需要的朋友可以參考下
    2024-07-07
  • SpringBoot全局異常處理之多個處理器匹配順序(最新推薦)

    SpringBoot全局異常處理之多個處理器匹配順序(最新推薦)

    這篇文章主要介紹了SpringBoot全局異常處理之多個處理器匹配順序(最新推薦),調(diào)試源碼可見匹配順序為:異常層級高者優(yōu)先,再清楚點,子類異常處理器優(yōu)先,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2024-03-03
  • java中dart類詳細講解

    java中dart類詳細講解

    這篇文章主要介紹了dart類詳細講解,實例講解的很清晰,有對于這方面不太清楚的同學可以跟著學習下
    2021-02-02
  • 簡單了解java中靜態(tài)初始化塊的執(zhí)行順序

    簡單了解java中靜態(tài)初始化塊的執(zhí)行順序

    這篇文章主要介紹了簡單了解java中靜態(tài)初始化塊的執(zhí)行順序,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • 詳解Spring Cloud Gateway 數(shù)據(jù)庫存儲路由信息的擴展方案

    詳解Spring Cloud Gateway 數(shù)據(jù)庫存儲路由信息的擴展方案

    這篇文章主要介紹了詳解Spring Cloud Gateway 數(shù)據(jù)庫存儲路由信息的擴展方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • springboot-啟動bean沖突的解決

    springboot-啟動bean沖突的解決

    這篇文章主要介紹了springboot-啟動bean沖突的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評論

黄山市| 海晏县| 嵊泗县| 上蔡县| 开封县| 偏关县| 花莲县| 庆城县| 华蓥市| 岳阳县| 松原市| 六枝特区| 嘉祥县| 商丘市| 冀州市| 旬邑县| 鹤庆县| 铜山县| 庄浪县| 资源县| 沙河市| 乐昌市| 恭城| 陇川县| 无锡市| 普格县| 长治县| 禹州市| 丰原市| 阳山县| 阿克陶县| 苍溪县| 宣武区| 五大连池市| 东宁县| 临邑县| 尼木县| 伊宁县| 墨江| 林西县| 峡江县|