您的位置:首页技术文章
文章详情页

JAVA实现的CrazyArcade泡泡堂游戏

【字号: 日期:2022-08-13 15:51:06浏览:41作者:猪猪
项目地址

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

示例图片

JAVA实现的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泡泡堂游戏的资料请关注好吧啦网其它相关文章!

标签: Java
相关文章: