Java实战之王者荣耀的英雄是怎么产生的?

作者:沉默着忍受 时间:2021-08-25 12:35:49 

一、前期准备

我们要在IDEA上创建一个新的项目,创建好一个项目后,我们需要创建4个包,分别是英雄包,装备包,铭文包,野怪包,皮肤包
然后我们就可以一个一个的实现这些功能了。

Java实战之王者荣耀的英雄是怎么产生的?

二、实现我的英雄梦!

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);
   }
}

Java实战之王者荣耀的英雄是怎么产生的?

我基本可以实现简单的创建一个英雄,实现刷野怪,购买装备的简单操作,后序我将实现英雄的三个技能和铭文的实现。

来源:https://blog.csdn.net/ILOVEMYDEAR/article/details/116431337

标签:Java,王者荣耀,游戏
0
投稿

猜你喜欢

  • java并发编程之深入理解Synchronized的使用

    2023-10-11 09:21:13
  • java中Object类4种方法详细介绍

    2023-11-03 16:06:12
  • maven多个仓库查询的优先级顺序案例讲解

    2023-08-16 02:33:23
  • Springboot创建项目的图文教程(idea版本)

    2022-09-30 13:30:17
  • Spring Boot集成ElasticSearch实现搜索引擎的示例

    2021-06-02 05:06:16
  • idea的spring boot项目实现更改端口号操作

    2023-11-23 03:21:17
  • MyBatis 中 ${}和 #{}的正确使用方法(千万不要乱用)

    2023-11-29 05:02:37
  • Struts2学习笔记(9)-Result配置全局结果集

    2022-04-09 11:33:10
  • java poi导出图片到excel示例代码

    2023-10-30 00:13:17
  • Springboot如何根据实体类生成数据库表

    2023-11-20 13:54:39
  • Jenkins+Maven+SVN自动化部署java项目

    2021-06-01 11:28:27
  • 详解Java数据库连接JDBC基础知识(操作数据库:增删改查)

    2023-08-22 23:47:37
  • 超详细的Spring Boot入门笔记(总结)

    2022-10-26 18:44:21
  • Kotlin开发Android应用实例详解

    2023-09-11 00:22:50
  • Spring缓存注解@Cacheable @CacheEvit @CachePut使用介绍

    2022-06-05 01:47:14
  • Java concurrency线程池之线程池原理(二)_动力节点Java学院整理

    2023-11-28 23:43:18
  • java导出大批量(百万以上)数据的excel文件

    2023-11-16 13:13:22
  • java 多态性详解及常见面试题

    2023-03-15 18:08:49
  • Java Swing编写一个简单的计算器软件

    2023-08-12 06:24:04
  • Java设计模式的事件模型详解

    2023-11-29 04:47:08
  • asp之家 软件编程 m.aspxhome.com