ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java swing双人对战游戏

2021-06-21 21:02:19  阅读:296  来源: 互联网

标签:界面 游戏 血量 Actor 对战 英雄 swing Java 技能


Java 模拟游戏开发

一、设计思路

游戏界面介绍

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

游戏功能介绍

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

算法实现思路

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

二、关键代码流程图

image
image
image

三、测试案例设计

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

四、源代码

源代码

标签:界面,游戏,血量,Actor,对战,英雄,swing,Java,技能
来源: https://blog.csdn.net/troublenbfriend/article/details/118094392

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有