溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能

發(fā)布時間:2021-05-18 10:47:03 來源:億速云 閱讀:359 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、前期準備

我們需要創(chuàng)建一個Menu包,來定義一些操作的界面;

如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能

Menulogin是游戲選擇英雄皮膚,銘文和進入游戲的界面;代碼簡單易懂,我就不解釋了

package Menu;

import java.util.Scanner;

public class Menulogin {
    public  static  int Menulogin(){
        System.out.println("*****備戰(zhàn)選擇*****");
        System.out.println("按1 :選擇皮膚");
        System.out.println("按2 :選擇銘文");
        System.out.println("按3 :進入游戲");
        System.out.println("*****************");
        Scanner sc = new Scanner(System.in);
        int res = sc.nextInt();
        switch (res){
            case 1: return 1;
            case 2: return 2;
            case 3: return 3;
            default:
                System.out.println("參數(shù)錯誤,嘗試重新連接"); Menulogin();break;
        }
        return 0;
    }
}

Menuable是英雄技能釋放界面

package Menu;

import java.util.Scanner;

public class Menuable {
    //技能菜單
    public  static  int Menuable(){
        System.out.println("***************");
        System.out.println("按1 :技能一(控制)");
        System.out.println("按2 :技能二(傷害)");
        System.out.println("按3 :技能三(控制)");
        System.out.println("按0 :自動平A");
        System.out.println("按10 :攻擊野怪");
        System.out.println("按11 :購買裝備");
        System.out.println("***************");
        Scanner sc = new Scanner(System.in);
        int res = sc.nextInt();
        switch (res){
            case 1: return 1;
            case 2: return 2;
            case 3: return 3;
            case 0: return 0;
            case 10: return 10;
            case 11: return 11;
            default:return 4;
        }
    }
}

Menuyeguai是攻擊目標野怪的菜單,主要是通過選擇野怪,并且完成擊殺,獲得金幣

package Menu;

import yeguai.*;

import java.util.Scanner;

public class Menuyeguai {
    //刷野菜單
    public static  int Menuyeguai(){
        System.out.println("******選擇要攻擊的野怪******");
        System.out.println("1.野豬");
        System.out.println("2.小鳥");
        System.out.println("3.河蟹");
        System.out.println("4.小兵");
        System.out.println("5.炮車");
        System.out.println("6.紅buff");
        System.out.println("7.藍buff");
        System.out.println("10.進入技能頁面");
        System.out.println("11.進入裝備頁面");
        Scanner sc = new Scanner(System.in);
        int res = sc.nextInt();
        switch (res){
            case 1: Pig pig = new Pig(); return pig.getNum();
            case 2:
                Bird bird = new Bird();return bird.getNum();
            case 3:
                Heixie heixie = new Heixie();return heixie.getNum();
            case 4:
                Xiaobing xiaobing = new Xiaobing();return xiaobing.getNum();
            case 5:
                Paocar paocar = new Paocar();return  paocar.getMoney();
            case 6:return 1;
            case 7:return 0;
            case 10:return 10;
            case 11:return 11;
            default:
                System.out.println("無效操作"); return 12;
        }
    }
}

Menuzhuangbei是玩家是進入裝備頁面,購買裝備,增加全方位屬性,目前只實現(xiàn)了抵抗之靴,反甲,暗影戰(zhàn)斧

package Menu;

import java.util.Scanner;

public class Menuzhuangbei {
    //裝備頁面
    public static  int Menuzhuangbei(){
        System.out.println("++++++++++++++++++++++");
        System.out.println("1.抵抗之靴");
        System.out.println("2.反甲");
        System.out.println("3.暗影戰(zhàn)斧");
        System.out.println("4.極寒風暴");
        System.out.println("5.破軍");
        System.out.println("6.碎星錘");
        System.out.println("7.魔女斗篷");
        System.out.println("10.進入技能頁面");
        System.out.println("11.進入刷怪頁面");
        System.out.println("++++++++++++++++++++++");
        Scanner sc = new Scanner(System.in);
        int res = sc.nextInt();
        switch (res){
            case 1: return 1;
            case 2: return 2;
            case 3: return 3;
            case 4: return 4;
            case 5: return 5;
            case 6: return 6;
            case 7: return 7;
            case 10:return 10;
            case 11:return 11;
            default:return 12;
        }
    }

}

二、沒有錢買皮膚,我就自己造!

2.1 皮膚選擇界面設計

我們主要是后端設計,所有我們分析分析一下,如何實現(xiàn)一個皮膚。

如果友友玩過王者榮耀,那么你一定知道,不管一個皮膚有多貴,它可以固定給穿戴的英雄加20點的攻擊力,我是亞瑟的皮膚,所以加20點物理攻擊。如果創(chuàng)建了一個法師英雄,那么加20點法術(shù)攻擊。花里胡哨的皮膚,其實底層實現(xiàn)很容易,就是建模,美工比較折磨人。

如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能

package skin;

import yeguai.*;
import zhuangbei.Fajia;

import java.util.Scanner;

public class Yaseisskin {

    public  static  int Yaseisskin(){
        System.out.println("_________________________");
        System.out.println("    1. 亞瑟-圣騎之力       ");
        System.out.println("    2. 亞瑟-死亡騎士       ");
        System.out.println("    3. 亞瑟-獅心王         ");
        System.out.println("    4. 亞瑟-心靈戰(zhàn)警       ");
        System.out.println("_________________________");
        Scanner sc = new Scanner(System.in);
        int res = sc.nextInt();
        if(res==1){
           int add = Yuanshenskin();
           return add;
        }
        if(res==2){
            int add = Firstskin();
            return add;
        }
        if(res==3){
            int add = Secondskin();
            return add;
        }
        if(res==4){
            int add = Thirdskin();
            return add;
        }
        return 0;
    }



    private static int Yuanshenskin(){
        System.out.println("亞瑟穿上了“亞瑟-圣騎之力”皮膚");
        int phyattack =20;
        return phyattack;
    }

    private static int Firstskin(){
        System.out.println("亞瑟穿上了“亞瑟-死亡騎士”皮膚");
        int phyattack =20;
        return phyattack;
    }

    private  static  int Secondskin(){
        System.out.println("亞瑟穿上了“亞瑟-獅心王 ”皮膚");
        int phyattack =20;
        return phyattack;
    }

    private  static  int Thirdskin(){
        System.out.println("亞瑟穿上了“亞瑟-心靈戰(zhàn)警 ”皮膚");
        int phyattack =20;
        return phyattack;
    }
}

沒錯,這是我的想法,如果你感興趣,可以在自己創(chuàng)造新的,牛逼,開掛的皮膚。哈哈哈

2.2 如何將皮膚屬性賦給英雄

這個十分簡單,我們只需要拿到所選的皮膚返回值,然后將該返回值賦給英雄的基礎攻擊力就實現(xiàn)了屬性賦予。
代碼如下:

 if(menulogin.Menulogin()==1){
          int num = Yaseisskin.Yaseisskin();
          yase.setPhyattack(yase.getPhyattack()+num);
            System.out.println("皮膚穿戴成功!");
            System.out.println(yase.getName()+"當前屬性為"+" 金幣 "+yase.getMoney()+" 物理攻擊 "+yase.getPhyattack()+" 血量                  "+yase.getBlood()+" 移速 "+yase.getMove()
            );
        }

如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能

四個皮膚具體實現(xiàn):
原皮 :亞瑟-圣騎之力 無加成

private static int Yuanshenskin(){
        System.out.println("亞瑟穿上了“亞瑟-圣騎之力”皮膚");
        int phyattack =0;
        return phyattack;
    }

賽季皮膚:亞瑟-獅心王

  private  static  int Secondskin(){
        System.out.println("亞瑟穿上了“亞瑟-獅心王 ”皮膚");
        int phyattack =20;
        return phyattack;
    }

活動皮膚:亞瑟-死亡騎士

  private static int Firstskin(){
        System.out.println("亞瑟穿上了“亞瑟-死亡騎士”皮膚");
        int phyattack =20;
        return phyattack;
    }

碎片兌換皮膚:亞瑟-心靈戰(zhàn)警

 private  static  int Thirdskin(){
        System.out.println("亞瑟穿上了“亞瑟-心靈戰(zhàn)警 ”皮膚");
        int phyattack =20;
        return phyattack;
    }

三、沒有牛逼的英雄技能,玩?zhèn)€錘子!

3.1 確定英雄技能效果

 我們實現(xiàn)好皮膚后,點擊進入游戲,那么,我們玩什么,當然是刷怪,打人,推塔(打人,推塔在系列三開始實現(xiàn))。我現(xiàn)在創(chuàng)建的英雄是亞瑟。
   亞瑟有三個技能和一個被動技能;(被動技能我沒有實現(xiàn),因為木有好想法,友友快快幫忙?。?

   **第一個技能:**
//亞瑟的一技能
    public static  int[] Firstable(boolean Redbuff){  //給技能一個參數(shù),如果有紅buff或藍buff,那么技能屬性就會提升
        int[] res = new int[4];
        if(Redbuff){ //有紅buff
            int phyattack = 120;//輸出的傷害
            int blood = 200;
            int move = 100; //一技能效果加速
            res[0]=120;
            res[1]=200;
            res[2]=100;
        }else{ //無紅buff
            int phyattack = 100;
            int blood = 0;
            int move = 100;
            res[0]=100;
            res[1]=0;
            res[2]=100;
        }

        //一技能特殊屬性,沉默英雄,也就是說,被擊中的英雄2s內(nèi)無法釋放技能。
        res[3] = 1;//標志1為該技能的效果是可以沉默;

        return res;
    }

第二個技能實現(xiàn):

//亞瑟的二技能
    public static int[] Secondable(boolean Redbuff,boolean bluebuff){  //給技能一個參數(shù),如果有紅buff,那么技能屬性就會提升
        int[] res1 = new int[4];

        int phyattack = 300;
        int blood = 0;
        int move = 50;
        int time1 = 7000; // 每7s ,一個二技能
        res1[0]=phyattack;
        res1[1]=blood;
        res1[2]=move ;
        res1[3]=time1;

        if(Redbuff){ //有紅buff
            phyattack = 400;
            blood = 200;
            move = 50;
            res1[0]=phyattack;
            res1[1]=blood;
            res1[2]=move;
            res1[3]=time1;
        }
        if(bluebuff){ //有藍buff
           time1 = 6000;
            res1[3]=time1;
        }
        return res1;
    }

第三個技能實現(xiàn):

//亞瑟的三技能
    public static int[] Thirdable(boolean Redbuff,boolean bluebuff){  //給技能一個參數(shù),如果有紅buff,那么技能屬性就會提升
        int[] res2 = new int[4];
        int phyattack = 600;
        int blood = 0;
        int move = 50;
        int time2 = 12000;  //每12s一個三技能
        res2[0]=phyattack;
        res2[1]=blood;
        res2[2]=move ;
        res2[3]=time2;
        if(Redbuff){ //有紅buff
            phyattack = 800;
            blood = 400;
            move = 50;
            res2[0]=phyattack;
            res2[1]=blood;
            res2[2]=move ;
            res2[3]=time2;
        }

        if(bluebuff){ //有藍buff
             time2 = 10000;
            res2[0]=phyattack ;
            res2[1]=blood ;
            res2[2]=move ;
            res2[3]=time2;
        }

        return res2;
    }

3.2 英雄技能使用

**利用技能菜單,完成技能的使用,**
int flag=menulogin.Menulogin(); //游戲開始標記符;
        Boolean red = false;
        Boolean blue = false; //默認英雄初始是沒有buff的
        while (flag==3) {
            Menuable menuable = new Menuable();
            Menuyeguai menuyeguai = new Menuyeguai();
            Menuzhuangbei menuzhuangbei = new Menuzhuangbei();
            int res = menuable.Menuable(); //技能菜單
            int[] arr = new int[4];
            switch (res) {   //技能生效操作
                case 1:
                    System.out.println("當前使用一技能誓約之盾!");
                    arr = Firstable(red);
                    break;
                case 2:
                    System.out.println("當前使用二技能回旋打擊!");
                    arr = Secondable(red, blue);
                    break;
                case 3:
                    System.out.println("當前使用二技能圣劍裁決!");
                    arr = Thirdable(red, blue);
                    break;
                case 10:
                    int res1 = menuyeguai.Menuyeguai();
                    switch (res1){  //刷野生效操作
                        case 80:
                        case 100:
                        case 150:
                        case 200:
                        case 250:yase.setMoney(yase.getMoney()+res1);break;
                        case 1: red = true;break;
                        case 0: blue = true;break;
                        case 10:;
                        case 11:;
                        default:
                            System.out.println("系統(tǒng)錯誤");
                    }
                    break;
                case 11:
                    int res2 = menuzhuangbei.Menuzhuangbei();
                    switch (res2){  //進入裝備購買頁面
                        case 1:
                            Shoe shoe = new Shoe();
                            if(yase.getMoney()>=200){
                            System.out.println(yase.name+"購買了"+shoe.name);
                            yase.phyfangyu+=shoe.getPhyattack();
                            yase.move+=shoe.getMove();
                            yase.money=yase.money-200;
                        }else{
                                System.out.println("金幣不足,無法購買"+shoe.name);
                            };break;
                        case 2:
                            Fajia fajia = new Fajia();
                            if(yase.getMoney()>=1200){
                            System.out.println(yase.name+"購買了"+fajia.name);
                            yase.phyattack+=fajia.getPhyattack(); //攻擊力+
                            yase.phyfangyu+=fajia.getPhyfanyu();  //防御力+
                            yase.money=yase.money-1200;
                        }else {
                                System.out.println("金幣不足,無法購買"+fajia.name);
                            };break;
                        case 3:
                            Anyinzhanfu anyinzhanfu = new Anyinzhanfu();
                            if(yase.getMoney()>=2000){
                            System.out.println(yase.name+"購買了"+anyinzhanfu.name);
                            yase.phyattack+=anyinzhanfu.getPhyattack(); //攻擊力+
                            yase.blood+=anyinzhanfu.getBlood();  //生命力+
                            yase.money=yase.money-2000;
                        }else {
                                System.out.println("金幣不足,無法購買"+anyinzhanfu.name);
                            }
                            break;
                        case 10:
                        case 11:
                        default:
                            System.out.println("系統(tǒng)錯誤");
                    }
                    break;
                case 4:
                    return;
                default:
                    System.out.println("自動平A中。。。。");
                    break;
            }
            yase.setPhyattack(yase.getPhyattack()+arr[0]);
            yase.setBlood(yase.getBlood()+arr[1]);
            yase.setMove(yase.getMove()+arr[2]);
            System.out.println(yase.getName()+"當前屬性為"+" 金幣 "+yase.getMoney()+" 物理攻擊 "+yase.getPhyattack()+" 血量 "+yase.getBlood()+" 移速 "+yase.getMove()
            +" 當前技能冷卻時間 "+arr[3]+"ms");
        }

里面嵌套了裝備購買和刷怪的代碼實現(xiàn),代碼十分基礎,聰明的友友你一定看的懂。
刷野怪主要是給每個野怪設定了不同的金幣數(shù)量,然后通過Switch,進行判斷。
buff是根據(jù)返回值,來確定當前是否有buff;
裝備購買的代碼原理一樣,調(diào)用裝備類,在購買裝備前先判斷經(jīng)濟是否滿足條件;

3.3 技能釋放演示

如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能

使用一技能:

如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能
如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能
如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能

四、光放技能有什么用,刷怪買裝備!

4.1 刷怪實現(xiàn)的方法

int res1 = menuyeguai.Menuyeguai();
                    switch (res1){  //刷野生效操作
                        case 80:
                        case 100:
                        case 150:
                        case 200:
                        case 250:yase.setMoney(yase.getMoney()+res1);break;
                        case 1: red = true;break;
                        case 0: blue = true;break;
                        default:
                            System.out.println("系統(tǒng)錯誤");
                    }
                    break;

程序運行演示:

如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能
如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能
如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能

4.2 購買裝備!

int res2 = menuzhuangbei.Menuzhuangbei();
                    switch (res2){  //進入裝備購買頁面
                        case 1:
                            Shoe shoe = new Shoe();
                            if(yase.getMoney()>=200){
                            System.out.println(yase.name+"購買了"+shoe.name);
                            yase.phyfangyu+=shoe.getPhyattack();
                            yase.move+=shoe.getMove();
                            yase.money=yase.money-200;
                        }else{
                                System.out.println("金幣不足,無法購買"+shoe.name);
                            };break;
                        case 2:
                            Fajia fajia = new Fajia();
                            if(yase.getMoney()>=1200){
                            System.out.println(yase.name+"購買了"+fajia.name);
                            yase.phyattack+=fajia.getPhyattack(); //攻擊力+
                            yase.phyfangyu+=fajia.getPhyfanyu();  //防御力+
                            yase.money=yase.money-1200;
                        }else {
                                System.out.println("金幣不足,無法購買"+fajia.name);
                            };break;
                        case 3:
                            Anyinzhanfu anyinzhanfu = new Anyinzhanfu();
                            if(yase.getMoney()>=2000){
                            System.out.println(yase.name+"購買了"+anyinzhanfu.name);
                            yase.phyattack+=anyinzhanfu.getPhyattack(); //攻擊力+
                            yase.blood+=anyinzhanfu.getBlood();  //生命力+
                            yase.money=yase.money-2000;
                        }else {
                                System.out.println("金幣不足,無法購買"+anyinzhanfu.name);
                            }
                            break;
                        case 10:
                        case 11:
                        default:
                            System.out.println("系統(tǒng)錯誤");
                    }
                    break;

如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能
如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能
如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能
如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能

Java可以用來干什么

Java主要應用于:1. web開發(fā);2. Android開發(fā);3. 客戶端開發(fā);4. 網(wǎng)頁開發(fā);5. 企業(yè)級應用開發(fā);6. Java大數(shù)據(jù)開發(fā);7.游戲開發(fā)等。

以上是“如何使用java實現(xiàn)王者榮耀的皮膚和英雄技能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI