欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA实现的CrazyArcade泡泡堂游戏

程序员文章站 2022-03-10 20:52:26
项目地址https://github.com/scnu-a225/crazyarcade示例图片项目结构 frame:包含如开始、游戏中、结束的jframe main:包含程序入口和其它游...

项目地址

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环境

项目文件

如果您是想获取该项目源代码进行参考、学习或者修改,可以按以下步骤进行

  1. 使用git克隆或直接下载该项目
  2. 使用eclipse等导入该java项目
  3. 由于编译使用的java版本可能不一致,如果提示错误请根据您电脑的环境修改项目配置
  4. 编译并运行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泡泡堂游戏的资料请关注其它相关文章!