Java 模拟游戏开发

一、设计思路

游戏界面介绍

首先,我对每个角色的攻击和生命值都进行了描述,方便用户进行角色 的选择。其次,在完成老师布置要求的同时,我增加了技能这一个选项,每个角色都有相对应的技能可以选择。此外,对还可以点击“技能简介”按钮 对每个角色进行更加深入的了解。效果如图: 当用户点击其中任何一个角色的图片时,便可以进入相对应的游戏界面, 此时玩家的对手将由电脑随机生成。效果如图:

游戏功能介绍

  1. 玩家可以根据自己的兴趣或者英雄相生相克的属性选择自己的英雄, 如果不清楚英雄的的克制情况或者自己的技能的话,可以点击“技能简介”按钮 获取帮助。点击之后将会出现弹框介绍英雄的技能和属性。
  2. 进入游戏界面后,电脑将自动生成敌人。这里我根据英雄相克的属 性做了相对应的调整。如射手克制法师,所以对法师的伤害最高、而被战士克制, 所以对战士的伤害最低、与自己同职业的英雄伤害中等。这里你可以选择三个行 动按钮,每一步多会使英雄产生相对应的行动。(这里防守不能完全免除伤害, 只能免除部分伤害)
  3. 为了游戏界面的逼真效果,我将血条的消失设置消失时间,玩家在 享受娱乐游戏的同时也可以感受游戏带来的视觉震撼效果(这里说的略显夸张)。 此外界面底部有敌方英雄行动的介绍。方便洞察敌方英雄的行动。
  4. 此外,我将 Actor 类新定义了一个 crit_rate 来表示每个英雄的暴击 率,每个英雄初始化暴击率为 6%,战士使用技能后暴击率将提升到 30%。

算法实现思路

  1. 首先,我用了 java 中 swing 库中的一些界面插件完善整个游戏界面。 由于游戏中关于英雄的介绍比较多,所以我用了大量的 JLabel 类和 JButton 类 来搭建整个游戏的界面(一切目的都是为了方便用户)
  2. 在战斗过程中,我用了两个 progressbar 分别代表我方血量和敌方 血量。下面的 label 函数实时更新,方便我方了解战况。
  3. 在整个代码的过程中,难度最大的无疑是血量地慢慢减少。这里我 实现了一个 Runable 的接口,重载定义了 run 函数,新建一个 Thread 线程。实时更新血量。
  4. Actor 类的创立和老师的思路基本上无异,定义一个接口实现防御, 攻击和释放技能等操作。将 Actor 类 implement 这个接口。此外我定义了一个类, 里面成员全部为静态成员变量,用来存储英雄的不同的攻击值、血量值。方便将 来进行修改。

二、关键代码流程图



三、测试案例设计

因为全是可视化的界面,没有输入的字符,所以我将程序运行的结果录了一 段视频分享在百度网盘下:
链接: 链接 密码: 9c4o

四、源代码

源代码

Java swing双人对战游戏相关推荐

  1. 基于Java+Swing实现中国象棋游戏

    基于Java+Swing实现中国象棋游戏 一.系统介绍 二.功能展示 三.其他系统 四.获取源码 前言 中国象棋是起源于中国的一种棋,属于二人对抗性游戏的一种,在中国有着悠久的历史.由于用具简单,趣味 ...

  2. 【java毕业设计】基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现(毕业论文+程序源码)——俄罗斯方块游戏

    基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现,文章末尾 ...

  3. 【java毕业设计】基于java+swing+GUI的连连看游戏设计与实现(毕业论文+程序源码)——连连看游戏

    基于java+swing+GUI的连连看游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+GUI的连连看游戏设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  4. 基于Java+Swing实现雷电小游戏

    基于Java+Swing实现雷电小游戏 一.系统介绍 二.功能展示 三.其他系统 四.获取源码 一.系统介绍 基于java的雷电游戏基本功能包括:敌方飞机随机飞行.我方飞机手动控制飞行,射击比拼,游戏 ...

  5. 【Python游戏】可以实现双人对战游戏,类似拳皇可以选英雄的 绝对好玩 | 附带源码

    前言 本游戏的类型有点像大家小时候玩过的拳皇,可以进行游戏人物的选择,相信我绝对好玩!!! 废话不多说吧,大家记得给小编点个赞哈,一键三连才是小编更新的动力!! 相关文件 想学Python的小伙伴可以 ...

  6. 基于Java+Swing实现捕鱼达人游戏(含课程报告)

    基于Java+Swing实现捕鱼达人游戏(含课程报告) 一.系统介绍 1.开发背景 2.基本内容.实现方法及主要技术实现目标 3实现目标 二.功能展示 三.其他系统 四.获取源码 一.系统介绍 1.开 ...

  7. 基于Java+Swing实现推箱子游戏

    基于Java+Swing实现推箱子游戏 一.系统介绍 二.功能展示 三.其他系统 四.获取源码 一.系统介绍 基于JAVA的推箱子游戏系统主要用于实现游戏推箱子功能,提供多种不同难度的关卡.本系统结构 ...

  8. Java+Swing实现中国象棋游戏

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 二.系统展示 1.首页 2.黑棋走 3.红旗走 三.部分代码 ChineseCheseRule.java 四.其他 1.更多系统 Java ...

  9. 【java毕业设计】基于java+swing+GUI的雷电游戏GUI设计与实现(毕业论文+程序源码)——雷电游戏

    基于java+swing+GUI的雷电游戏GUI设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+GUI的雷电游戏GUI设计与实现,文章末尾附有本毕业设计的论文和源码下 ...

最新文章

  1. 如何设计一款暗度陈仓的反爬虫
  2. 如何混淆(保护)JavaScript? [关闭]
  3. 基于face++的人脸识别(上)
  4. JAVA复习( StringBuffer 和 StringBuilder)
  5. 2018百度之星程序设计大赛 - 资格赛 1002 子串查询
  6. JavaEE中使用绝对目录的说明
  7. ubuntu16.04 TLS安装java
  8. hive建表报错JsonSerDe
  9. IE8变成IE7的显示方式
  10. xv6源码阅读——xv6的启动,进程初识
  11. 软件安装包制作工具installshield 2020 R1的安装教程
  12. IBC-身份标识密码技术
  13. 生物信息相关岗位及任职要求整理
  14. go的内存管理和内存逃逸
  15. 电脑怎样重装系统win7旗舰版
  16. 涉案资金超10亿,又一洗钱团伙被端,“二清”警钟不能忘
  17. (JZ1162)2018.07.07【2018提高组】模拟B组 1.【NOI2002】贪吃的九头龙
  18. 如何实现报表高精度打印——套打
  19. jAVA EE NZ2001 java EE学习总结 第七周(包含思维导图) 主要内容I/O框架、网络编程、反射
  20. 【基于Simulink+UG NX MCD 一级倒立摆控制系统仿真】建模和分析(一)

热门文章

  1. Java实验13 银行账户存取款业务
  2. python数组转置和换轴_Numpy基础:数组转置和轴对换
  3. 乐优商场项目day07——解决跨域问题
  4. python ppt_Python3操作Office之PPT
  5. conda Solving environment: failed InvalidVersionSpecError: Invalid version spec: =2.7
  6. 大数据平台Lambda架构详解
  7. 轻雀协作应用场景模板之【请假流程管理】请假、审批so easy
  8. ecshop珠宝首饰 奢侈品商城PC网站模板 微信分销+wap手机网站
  9. POJ 2291 Rotten Ropes G++
  10. 计算机/软件专业属于工学还是理学?为什么?