王者荣耀中的英雄是怎么被创造的?

开发 项目管理 开发工具
我是一个比较爱玩游戏的人,比如王者荣耀。我常常在想,如果我可以自己创造一个英雄那该多好,现在我要开始以自己的想法来实现我的愿望,也来练习练习自己对于 java 对象的认识。

我是一个比较爱玩游戏的人,比如王者荣耀。我常常在想,如果我可以自己创造一个英雄那该多好,现在我要开始以自己的想法来实现我的愿望,也来练习练习自己对于 java 对象的认识。

[[415741]]

前期准备

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

实现我的英雄梦

①英雄基本属性实现

代码如下:

  1. package Hero; 
  2.  
  3. //英雄的基本属性 
  4. public class Hero { 
  5.     public String  name; //英雄的名字 
  6.     public String type; //英雄的职业 
  7.     public int blood; //英雄的基本血量 
  8.     public int phyattack; //英雄的基本物理攻击 
  9.     public int Magicattavk; //英雄的基本法术攻击 
  10.     public int phyfangyu; //英雄的基础防御 
  11.     public int attavknum; //普通伤害的值 
  12.     public int move; //移动速度 
  13.     public int money; //经济 
  14.  
  15.  
  16.     public Hero(String name, String type, int blood, int phyattack, int magicattavk, int phyfangyu,int attavknum,int move,int money) { 
  17.         this.name = name
  18.         this.type = type; 
  19.         this.blood = blood; 
  20.         this.phyattack = phyattack; 
  21.         this.Magicattavk = magicattavk; 
  22.         this.phyfangyu = phyfangyu; 
  23.         this.attavknum= attavknum; 
  24.         this.movemove
  25.         this.money= money; 
  26.     } 
  27.  
  28.     public String  getName() { 
  29.         return name
  30.     } 
  31.  
  32.     public String getType() { 
  33.         return type; 
  34.     } 
  35.  
  36.     public int getBlood() { 
  37.         return blood; 
  38.     } 
  39.  
  40.     public int getPhyattack() { 
  41.         return phyattack; 
  42.     } 
  43.  
  44.     public int getMagicattavk() { 
  45.         return Magicattavk; 
  46.     } 
  47.  
  48.     public int getPhyfangyu() { 
  49.         return phyfangyu; 
  50.     } 
  51.  
  52.     public int getAttavknum() { 
  53.         return attavknum; 
  54.     } 
  55.  
  56.     public void setName(String name) { 
  57.         this.name = name
  58.     } 
  59.  
  60.     public void setType(String type) { 
  61.         this.type = type; 
  62.     } 
  63.  
  64.     public void setBlood(int blood) { 
  65.         this.blood = blood; 
  66.     } 
  67.  
  68.     public void setPhyattack(int phyattack) { 
  69.         this.phyattack = phyattack; 
  70.     } 
  71.  
  72.     public void setMagicattavk(int magicattavk) { 
  73.         Magicattavk = magicattavk; 
  74.     } 
  75.  
  76.     public void setPhyfangyu(int phyfangyu) { 
  77.         this.phyfangyu = phyfangyu; 
  78.     } 
  79.  
  80.     public void setAttavknum(int attavknum) { 
  81.         this.attavknum = attavknum; 
  82.     } 
  83.  
  84.     //受到普通攻击 
  85.     public  int  bnormalAttack(int attavknum){ 
  86.         if(this.phyfangyu-this.attavknum<=0){ 
  87.             int res = this.phyfangyu-this.attavknum; 
  88.             return  this.blood+res; 
  89.         } 
  90.         return blood-this.attavknum; 
  91.     } 
  92.     //普通攻击 
  93.     public  int  znormalAttack(){ 
  94.         if(this.type=="射手"||this.type=="战士"||this.type=="刺客"){ 
  95.             this.attavknum+=phyattack; 
  96.         } 
  97.         if(this.type=="法师"){ 
  98.             this.attavknum+=Magicattavk; 
  99.         } 
  100.        return attavknum; 
  101.     } 

②装备包

装备太多了,我主要写一些我平时比较喜欢的几个装备,有兴趣的盆友可以自己练习多写几个。

鞋子:

  1. package zhuangbei; 
  2. //抵抗之靴 
  3. /** 
  4.  * 效果:减低敌方的攻击,也就是增加自己的物防 
  5.  */ 
  6.  
  7. public class Shoe { 
  8.     public  String name = "抵抗之靴"
  9.     public  int phyattack=200; 
  10.     public  int mckattack=0; 
  11.     public  int move = 200;//英雄移动速度+200; 
  12.  
  13.     public Shoe() { 
  14.  
  15.     } 
  16.  
  17.     public String getName() { 
  18.         return name
  19.     } 
  20.  
  21.     public void setName(String name) { 
  22.         this.name = name
  23.     } 
  24.  
  25.     public int getPhyattack() { 
  26.         return phyattack; 
  27.     } 
  28.  
  29.     public void setPhyattack(int phyattack) { 
  30.         this.phyattack = phyattack; 
  31.     } 
  32.  
  33.     public int getMckattack() { 
  34.         return mckattack; 
  35.     } 
  36.  
  37.     public void setMckattack(int mckattack) { 
  38.         this.mckattack = mckattack; 
  39.     } 
  40.  
  41.     public int getMove() { 
  42.         return move
  43.     } 
  44.  
  45.     public void setMove(int move) { 
  46.         this.move = move
  47.     } 

反甲:

  1. package zhuangbei; 
  2. //反甲 
  3. public class Fajia { 
  4.     public  String name = "反甲"
  5.     public  int phyattack = 40; 
  6.     public  int phyfanyu = 420; 
  7.     public  double fashang = 0.2; //冷却时间 
  8.  
  9.     public int getPhyattack() { 
  10.         return phyattack; 
  11.     } 
  12.  
  13.     public void setPhyattack(int phyattack) { 
  14.         this.phyattack = phyattack; 
  15.     } 
  16.  
  17.     public int getPhyfanyu() { 
  18.         return phyfanyu; 
  19.     } 
  20.  
  21.     public void setPhyfanyu(int phyfanyu) { 
  22.         this.phyfanyu = phyfanyu; 
  23.     } 
  24.  
  25.     public double getFashang() { 
  26.         return fashang; 
  27.     } 
  28.  
  29.     public void setFashang(double fashang) { 
  30.         this.fashang = fashang; 
  31.     } 

暗影战斧:

  1. package zhuangbei; 
  2. //暗影战斧 
  3. /* 
  4. * */ 
  5. public class Anyinzhanfu { 
  6.     public  String name = "暗影战斧"
  7.     public int phyattack = 85; //加物理攻击85 
  8.     public int blood = 500;   //生命值加500 
  9.     public int cool = 15;    //冷却缩减15 
  10.  
  11.     public int getPhyattack() { 
  12.         return phyattack; 
  13.     } 
  14.  
  15.     public void setPhyattack(int phyattack) { 
  16.         this.phyattack = phyattack; 
  17.     } 
  18.  
  19.     public int getBlood() { 
  20.         return blood; 
  21.     } 
  22.  
  23.     public void setBlood(int blood) { 
  24.         this.blood = blood; 
  25.     } 
  26.  
  27.     public int getCool() { 
  28.         return cool; 
  29.     } 
  30.  
  31.     public void setCool(int cool) { 
  32.         this.cool = cool; 
  33.     } 

③没有经济来源怎么行?野怪实现

我主要写了野猪,小鸟,河蟹,小兵的类。

野猪:

  1. package yeguai; 
  2.  
  3. public class Pig { 
  4.     public int num = 80; 
  5.  
  6.     public int getNum() { 
  7.         return num; 
  8.     } 
  9.  
  10.     public void setNum(int num) { 
  11.         this.num = num; 
  12.     } 

小鸟:

  1. package yeguai; 
  2.  
  3. public class Bird { 
  4.     public int num = 100; 
  5.  
  6.     public int getNum() { 
  7.         return num; 
  8.     } 
  9.  
  10.     public void setNum(int num) { 
  11.         this.num = num; 
  12.     } 

河蟹:

  1. package yeguai; 
  2.  
  3. public class Heixie { 
  4.     public  int num = 150; 
  5.  
  6.     public int getNum() { 
  7.         return num; 
  8.     } 
  9.  
  10.     public void setNum(int num) { 
  11.         this.num = num; 
  12.     } 

小兵:

  1. package yeguai; 
  2.  
  3. public class Xiaobing { 
  4.     public  int num = 150; 
  5.  
  6.     public int getNum() { 
  7.         return num; 
  8.     } 
  9.  
  10.     public void setNum(int num) { 
  11.         this.num = num; 
  12.     } 

开始游戏啦

  1. import Hero.Hero; 
  2. import yeguai.Bird; 
  3. import yeguai.Heixie; 
  4. import yeguai.Pig; 
  5. import yeguai.Xiaobing; 
  6. import zhuangbei.Anyinzhanfu; 
  7. import zhuangbei.Fajia; 
  8. import zhuangbei.Shoe; 
  9.  
  10. public class Deom { 
  11.     public static void main(String[] args) { 
  12.          Hero yase = new Hero("亚瑟","战士",1000,200,0,500,200,50,0); 
  13.  
  14.          System.out.println(yase.name); 
  15.         System.out.println(yase.money); 
  16.         //开始发育(先产生野怪,小兵,河蟹的实例化对象) 
  17.         Pig pig1 = new Pig(); 
  18.         Bird Bird = new Bird(); 
  19.         Xiaobing xiaobing = new Xiaobing(); 
  20.         Heixie heixie = new Heixie(); 
  21.         for(int i =0;i<=10;i++){  //打了10轮 
  22.             yase.money+=pig1.getNum()+Bird.getNum()+xiaobing.getNum()+heixie.getNum(); 
  23.         } 
  24.         System.out.println(yase.name+"的经济现在是"+yase.money); 
  25.  
  26.         //开始创建装备类 
  27.         System.out.println("购买装备前:"); 
  28.         System.out.println(yase.name+"当前的属性"+"生命值:"+yase.blood+"物理攻击:"+yase.phyattack+"法术攻击:"+yase.Magicattavk+ 
  29.                 " 物理防御:"+yase.phyfangyu+"移动速度:"+yase.move); 
  30.  
  31.         if(yase.money>=200){ 
  32.             Shoe shoe = new Shoe(); 
  33.             System.out.println(yase.name+"购买了"+shoe.name); 
  34.             yase.phyfangyu+=shoe.getPhyattack(); 
  35.             yase.move+=shoe.getMove(); 
  36.             yase.money=yase.money-200; 
  37.         } 
  38.         if(yase.money>=1200){ 
  39.             Fajia fajia = new Fajia(); 
  40.             System.out.println(yase.name+"购买了"+fajia .name); 
  41.             yase.phyattack+=fajia.getPhyattack(); //攻击力+ 
  42.             yase.phyfangyu+=fajia.getPhyfanyu();  //防御力+ 
  43.             yase.money=yase.money-1200; 
  44.         } 
  45.         if(yase.money>=2000){ 
  46.             Anyinzhanfu anyinzhanfu = new Anyinzhanfu(); 
  47.             System.out.println(yase.name+"购买了"+anyinzhanfu.name); 
  48.             yase.phyattack+=anyinzhanfu.getPhyattack(); //攻击力+ 
  49.             yase.blood+=anyinzhanfu.getBlood();  //生命力+ 
  50.             yase.money=yase.money-2000; 
  51.         } 
  52.         System.out.println("购买装备后:"); 
  53.         System.out.println(yase.name+"当前的属性"+"生命值:"+yase.blood+"物理攻击:"+yase.phyattack+"法术攻击:"+yase.Magicattavk+ 
  54.                 " 物理防御:"+yase.phyfangyu+"移动速度:"+yase.move); 
  55.     } 

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

作者:沉默着忍受

编辑:陶家龙

出处:http://adkx.net/wkxf2

 

责任编辑:武晓燕 来源: adkx.net
相关推荐

2017-10-16 09:44:19

大数据数据分析王者荣耀

2017-10-08 10:22:00

大数据王者荣耀词汇

2017-11-27 11:02:46

高并发突发池系统架构王者荣耀

2017-10-30 08:20:16

王者荣耀腾讯云游戏

2023-08-31 07:53:56

Redis内存数据库

2017-07-10 14:20:45

2017-08-30 12:17:02

Python王者荣耀套路

2017-07-17 12:17:38

2017-12-25 16:20:40

Python自动化王者荣耀

2017-09-25 15:30:21

机器学习入门

2020-07-10 08:27:55

王者荣耀微服务架构

2017-06-09 18:31:00

电竞手游王者荣耀

2020-09-01 10:46:55

微服务架构服务器

2012-02-09 10:41:33

小米手机雷军

2022-12-23 14:29:18

团队Leader

2022-11-25 10:01:02

团队敏捷团队

2018-01-02 09:00:51

大数据营销王者荣耀

2024-07-10 08:22:42

2024-04-01 08:23:20

代码Javajavascript

2017-11-30 12:39:06

点赞
收藏

51CTO技术栈公众号