JAVA实现的CrazyArcade泡泡堂游戏
程序员文章站
2022-03-10 20:52:26
项目地址https://github.com/scnu-a225/crazyarcade示例图片项目结构 frame:包含如开始、游戏中、结束的jframe main:包含程序入口和其它游...
项目地址
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泡泡堂游戏的资料请关注其它相关文章!