Java实战之王者荣耀的英雄是怎么产生的?
作者:沉默着忍受 发布时间:2021-08-25 12:35:49
标签:Java,王者荣耀,游戏
一、前期准备
我们要在IDEA上创建一个新的项目,创建好一个项目后,我们需要创建4个包,分别是英雄包,装备包,铭文包,野怪包,皮肤包
然后我们就可以一个一个的实现这些功能了。
二、实现我的英雄梦!
2.1 英雄基本属性实现
package Hero;
//英雄的基本属性
public class Hero {
public String name; //英雄的名字
public String type; //英雄的职业
public int blood; //英雄的基本血量
public int phyattack; //英雄的基本物理攻击
public int Magicattavk; //英雄的基本法术攻击
public int phyfangyu; //英雄的基础防御
public int attavknum; //普通伤害的值
public int move; //移动速度
public int money; //经济
public Hero(String name, String type, int blood, int phyattack, int magicattavk, int phyfangyu,int attavknum,int move,int money) {
this.name = name;
this.type = type;
this.blood = blood;
this.phyattack = phyattack;
this.Magicattavk = magicattavk;
this.phyfangyu = phyfangyu;
this.attavknum= attavknum;
this.move= move;
this.money= money;
}
public String getName() {
return name;
}
public String getType() {
return type;
}
public int getBlood() {
return blood;
}
public int getPhyattack() {
return phyattack;
}
public int getMagicattavk() {
return Magicattavk;
}
public int getPhyfangyu() {
return phyfangyu;
}
public int getAttavknum() {
return attavknum;
}
public void setName(String name) {
this.name = name;
}
public void setType(String type) {
this.type = type;
}
public void setBlood(int blood) {
this.blood = blood;
}
public void setPhyattack(int phyattack) {
this.phyattack = phyattack;
}
public void setMagicattavk(int magicattavk) {
Magicattavk = magicattavk;
}
public void setPhyfangyu(int phyfangyu) {
this.phyfangyu = phyfangyu;
}
public void setAttavknum(int attavknum) {
this.attavknum = attavknum;
}
//受到普通攻击
public int bnormalAttack(int attavknum){
if(this.phyfangyu-this.attavknum<=0){
int res = this.phyfangyu-this.attavknum;
return this.blood+res;
}
return blood-this.attavknum;
}
//普通攻击
public int znormalAttack(){
if(this.type=="射手"||this.type=="战士"||this.type=="刺客"){
this.attavknum+=phyattack;
}
if(this.type=="法师"){
this.attavknum+=Magicattavk;
}
return attavknum;
}
}
2.2 装备包
装备太多了,我主要写一些我平时比较喜欢的几个装备,有兴趣的盆友可以自己练习多写几个
鞋子
package zhuangbei;
//抵抗之靴
/**
* 效果:减低敌方的攻击,也就是增加自己的物防
*/
public class Shoe {
public String name = "抵抗之靴";
public int phyattack=200;
public int mckattack=0;
public int move = 200;//英雄移动速度+200;
public Shoe() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPhyattack() {
return phyattack;
}
public void setPhyattack(int phyattack) {
this.phyattack = phyattack;
}
public int getMckattack() {
return mckattack;
}
public void setMckattack(int mckattack) {
this.mckattack = mckattack;
}
public int getMove() {
return move;
}
public void setMove(int move) {
this.move = move;
}
}
反甲
package zhuangbei;
//反甲
public class Fajia {
public String name = "反甲";
public int phyattack = 40;
public int phyfanyu = 420;
public double fashang = 0.2; //冷却时间
public int getPhyattack() {
return phyattack;
}
public void setPhyattack(int phyattack) {
this.phyattack = phyattack;
}
public int getPhyfanyu() {
return phyfanyu;
}
public void setPhyfanyu(int phyfanyu) {
this.phyfanyu = phyfanyu;
}
public double getFashang() {
return fashang;
}
public void setFashang(double fashang) {
this.fashang = fashang;
}
}
暗影战斧
package zhuangbei;
//暗影战斧
/*
*
* */
public class Anyinzhanfu {
public String name = "暗影战斧";
public int phyattack = 85; //加物理攻击85
public int blood = 500; //生命值加500
public int cool = 15; //冷却缩减15
public int getPhyattack() {
return phyattack;
}
public void setPhyattack(int phyattack) {
this.phyattack = phyattack;
}
public int getBlood() {
return blood;
}
public void setBlood(int blood) {
this.blood = blood;
}
public int getCool() {
return cool;
}
public void setCool(int cool) {
this.cool = cool;
}
}
三、野怪实现
我主要写了野猪,小鸟,河蟹,小兵的类
野猪
package yeguai;
public class Pig {
public int num = 80;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
小鸟
package yeguai;
public class Bird {
public int num = 100;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
河蟹
package yeguai;
public class Heixie {
public int num = 150;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
小兵
package yeguai;
public class Xiaobing {
public int num = 150;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
四、开始游戏
import Hero.Hero;
import yeguai.Bird;
import yeguai.Heixie;
import yeguai.Pig;
import yeguai.Xiaobing;
import zhuangbei.Anyinzhanfu;
import zhuangbei.Fajia;
import zhuangbei.Shoe;
public class Deom {
public static void main(String[] args) {
Hero yase = new Hero("亚瑟","战士",1000,200,0,500,200,50,0);
System.out.println(yase.name);
System.out.println(yase.money);
//开始发育(先产生野怪,小兵,河蟹的实例化对象)
Pig pig1 = new Pig();
Bird Bird = new Bird();
Xiaobing xiaobing = new Xiaobing();
Heixie heixie = new Heixie();
for(int i =0;i<=10;i++){ //打了10轮
yase.money+=pig1.getNum()+Bird.getNum()+xiaobing.getNum()+heixie.getNum();
}
System.out.println(yase.name+"的经济现在是"+yase.money);
//开始创建装备类
System.out.println("购买装备前:");
System.out.println(yase.name+"当前的属性"+"生命值:"+yase.blood+"物理攻击:"+yase.phyattack+"法术攻击:"+yase.Magicattavk+
" 物理防御:"+yase.phyfangyu+"移动速度:"+yase.move);
if(yase.money>=200){
Shoe shoe = new Shoe();
System.out.println(yase.name+"购买了"+shoe.name);
yase.phyfangyu+=shoe.getPhyattack();
yase.move+=shoe.getMove();
yase.money=yase.money-200;
}
if(yase.money>=1200){
Fajia fajia = new Fajia();
System.out.println(yase.name+"购买了"+fajia .name);
yase.phyattack+=fajia.getPhyattack(); //攻击力+
yase.phyfangyu+=fajia.getPhyfanyu(); //防御力+
yase.money=yase.money-1200;
}
if(yase.money>=2000){
Anyinzhanfu anyinzhanfu = new Anyinzhanfu();
System.out.println(yase.name+"购买了"+anyinzhanfu.name);
yase.phyattack+=anyinzhanfu.getPhyattack(); //攻击力+
yase.blood+=anyinzhanfu.getBlood(); //生命力+
yase.money=yase.money-2000;
}
System.out.println("购买装备后:");
System.out.println(yase.name+"当前的属性"+"生命值:"+yase.blood+"物理攻击:"+yase.phyattack+"法术攻击:"+yase.Magicattavk+
" 物理防御:"+yase.phyfangyu+"移动速度:"+yase.move);
}
}
我基本可以实现简单的创建一个英雄,实现刷野怪,购买装备的简单操作,后序我将实现英雄的三个技能和铭文的实现。
来源:https://blog.csdn.net/ILOVEMYDEAR/article/details/116431337


猜你喜欢
- 1 Android SDK自带的org.json解析解析原理: 基于文档驱动,需要把全部文件读入到内存中,然后遍历所有数据,根据需要检索想要
- ??是一个二元运算符,如果左操作数非空,则返回左操作数,否则返回右操作数,所以,在一些特定的场合可以用它来代替?:运算符,简化代码书写。例1
- Unity脚本自动添加头部注释就是创建.cs文件时自动添加作者名,创建时间,文件名等看示例,我们在Unity的project面板下先创建一个
- 工厂方法模式,往往是设计模式初学者入门的模式,的确,有人称之为最为典型最具启发效果的模式。android中用到了太多的工厂类,其中有用工厂方
- 搭建个SSM框架居然花费了我好长时间!特此记录!需要准备的环境:idea 2017.1jdk1.8Maven 3.3.9请提前将idea与M
- 本文使用Matrix实现Android实现图片缩放与旋转。示例代码如下:package com.android.matrix;import
- Unity3D游戏引擎介绍Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三
- 今天看到一个ios写的图灵机器人,直接去官网(http://www.tuling123.com/openapi/)看了下API接入,太简单了
- 在电商上购买商品后,如果在下单而又没有支付的情况下,一般提示30分钟完成支付,否则订单自动。比如在京东下单为完成支付:超过24小时,就会自动
- 本文实例为大家分享了Android投票进度条的具体代码,供大家参考,具体内容如下效果展示功能属性介绍<!-- MatchSupport
- 这篇文章主要介绍了spring boot2X Consul如何使用Feign实现服务调用,文中通过示例代码介绍的非常详细,对大家的学习或者工
- 下面分几部分介绍C#实现自动售货机接口的方法,代码写的非常详细,不懂的地方有注释可以参考下。MachineJP类:第1部分:串口初始化,串口
- Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个
- 本文主要是对Handler和消息循环的实现原理进行源码分析,如果不熟悉Handler可以参见博文《 Android中Handler的使用》,
- Java * 模式 代理:一个角色代表别一个角色来实现某些特定的能功。 比
- 本文实例为大家分享了Android实现房贷计算器的具体代码,供大家参考,具体内容如下fangdai(activity)package com
- Windows的画图板相信很多人都用过,这次我们就来讲讲Java版本的简易画板的实现。基本的思路是这样的:画板实现大致分三部分:一是画板界面
- 详解path和classpath的区别path的作用path是系统用来指定可执行文件的完整路径,即使不在path中设置JDK的路径也可执行J
- 一副扑克有54张牌:大小王+4*13,接下来我们来模拟一下斗地主的发牌过程首先,我们需要买牌,新买来的牌都是按顺序摆放的,因此下一步是洗牌,
- android绘制圆形图片的两种方式看下效果先下面有完整的示例代码使用BitmapShader(着色器)我们在绘制view 的时候 就是小学