王者榮耀中的英雄是怎么被創(chuàng)造的?
我是一個比較愛玩游戲的人,比如王者榮耀。我常常在想,如果我可以自己創(chuàng)造一個英雄那該多好,現(xiàn)在我要開始以自己的想法來實現(xiàn)我的愿望,也來練習(xí)練習(xí)自己對于 java 對象的認(rèn)識。
前期準(zhǔn)備
我們要在 IDEA 上創(chuàng)建一個新的項目,創(chuàng)建好一個項目后,我們需要創(chuàng)建5個包,分別是英雄包,裝備包,銘文包,野怪包,皮膚包,然后我們就可以一個一個的實現(xiàn)這些功能了。
實現(xiàn)我的英雄夢
①英雄基本屬性實現(xiàn)
代碼如下:
- package Hero;
- //英雄的基本屬性
- public class Hero {
- public String name; //英雄的名字
- public String type; //英雄的職業(yè)
- public int blood; //英雄的基本血量
- public int phyattack; //英雄的基本物理攻擊
- public int Magicattavk; //英雄的基本法術(shù)攻擊
- public int phyfangyu; //英雄的基礎(chǔ)防御
- public int attavknum; //普通傷害的值
- public int move; //移動速度
- public int money; //經(jīng)濟(jì)
- 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=="戰(zhàn)士"||this.type=="刺客"){
- this.attavknum+=phyattack;
- }
- if(this.type=="法師"){
- this.attavknum+=Magicattavk;
- }
- return attavknum;
- }
- }
②裝備包
裝備太多了,我主要寫一些我平時比較喜歡的幾個裝備,有興趣的盆友可以自己練習(xí)多寫幾個。
鞋子:
- 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;
- }
- }
暗影戰(zhàn)斧:
- package zhuangbei;
- //暗影戰(zhàn)斧
- /*
- *
- * */
- public class Anyinzhanfu {
- public String name = "暗影戰(zhàn)斧";
- 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;
- }
- }
③沒有經(jīng)濟(jì)來源怎么行?野怪實現(xiàn)
我主要寫了野豬,小鳥,河蟹,小兵的類。
野豬:
- 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("亞瑟","戰(zhàn)士",1000,200,0,500,200,50,0);
- System.out.println(yase.name);
- System.out.println(yase.money);
- //開始發(fā)育(先產(chǎn)生野怪,小兵,河蟹的實例化對象)
- 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+"的經(jīng)濟(jì)現(xiàn)在是"+yase.money);
- //開始創(chuàng)建裝備類
- System.out.println("購買裝備前:");
- System.out.println(yase.name+"當(dāng)前的屬性"+"生命值:"+yase.blood+"物理攻擊:"+yase.phyattack+"法術(shù)攻擊:"+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+"當(dāng)前的屬性"+"生命值:"+yase.blood+"物理攻擊:"+yase.phyattack+"法術(shù)攻擊:"+yase.Magicattavk+
- " 物理防御:"+yase.phyfangyu+"移動速度:"+yase.move);
- }
- }
我基本可以實現(xiàn)簡單的創(chuàng)建一個英雄,實現(xiàn)刷野怪,購買裝備的簡單操作,后序我將實現(xiàn)英雄的三個技能和銘文的實現(xiàn)。
作者:沉默著忍受
編輯:陶家龍
出處:http://adkx.net/wkxf2