软件编程
位置:首页>> 软件编程>> java编程>> JAVA实现的CrazyArcade泡泡堂游戏

JAVA实现的CrazyArcade泡泡堂游戏

作者:JiangJian1998  发布时间:2022-12-25 11:55:23 

标签:Java,泡泡堂游戏,CrazyArcade
目录
  • 项目地址

  • 示例图片

  • 项目结构

  • 机器人

  • 平滑碰撞

  • 其它特性

  • 使用

    • 打包文件

    • 项目文件

  • 声明

    • 主要代码

      项目地址

      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文件夹

      项目文件

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

      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

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

      0
      投稿

      猜你喜欢

      手机版 软件编程 asp之家 www.aspxhome.com