国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

我用java實(shí)現了王者榮耀的皮膚和英雄技能

發(fā)布時(shí)間:2021-07-05 18:40 來(lái)源:腳本之家 閱讀:0 作者:沉默著(zhù)忍受 欄目: 開(kāi)發(fā)技術(shù)

目錄

    一、前期準備

    提示:如果友友你沒(méi)有看過(guò)系列一的文章點(diǎn)擊這個(gè)鏈接:

    我們現在功能比較多,所有為了讓程序運行起來(lái)比較直觀(guān),我們需要創(chuàng )建一個(gè)Menu包,來(lái)定義一些操作的界面;

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

    package Menu;
    
    import java.util.Scanner;
    
    public class Menulogin {
        public  static  int Menulogin(){
            System.out.println("*****備戰選擇*****");
            System.out.println("按1 :選擇皮膚");
            System.out.println("按2 :選擇銘文");
            System.out.println("按3 :進(jìn)入游戲");
            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("參數錯誤,嘗試重新連接"); 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 :自動(dòng)平A");
            System.out.println("按10 :攻擊野怪");
            System.out.println("按11 :購買(mǎi)裝備");
            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是攻擊目標野怪的菜單,主要是通過(guò)選擇野怪,并且完成擊殺,獲得金幣

    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.小鳥(niǎo)");
            System.out.println("3.河蟹");
            System.out.println("4.小兵");
            System.out.println("5.炮車(chē)");
            System.out.println("6.紅buff");
            System.out.println("7.藍buff");
            System.out.println("10.進(jìn)入技能頁(yè)面");
            System.out.println("11.進(jìn)入裝備頁(yè)面");
            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("無(wú)效操作"); return 12;
            }
        }
    }
    

    Menuzhuangbei是玩家是進(jìn)入裝備頁(yè)面,購買(mǎi)裝備,增加全方位屬性,目前只實(shí)現了抵抗之靴,反甲,暗影戰斧

    package Menu;
    
    import java.util.Scanner;
    
    public class Menuzhuangbei {
        //裝備頁(yè)面
        public static  int Menuzhuangbei(){
            System.out.println("++++++++++++++++++++++");
            System.out.println("1.抵抗之靴");
            System.out.println("2.反甲");
            System.out.println("3.暗影戰斧");
            System.out.println("4.極寒風(fēng)暴");
            System.out.println("5.破軍");
            System.out.println("6.碎星錘");
            System.out.println("7.魔女斗篷");
            System.out.println("10.進(jìn)入技能頁(yè)面");
            System.out.println("11.進(jìn)入刷怪頁(yè)面");
            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;
            }
        }
    
    }
    

    二、沒(méi)有錢(qián)買(mǎi)皮膚,我就自己造!

    2.1 皮膚選擇界面設計

    我們主要是后端設計,所有我們分析分析一下,如何實(shí)現一個(gè)皮膚。

    如果友友玩過(guò)王者榮耀,那么你一定知道,不管一個(gè)皮膚有多貴,它可以固定給穿戴的英雄加20點(diǎn)的攻擊力,我是亞瑟的皮膚,所以加20點(diǎn)物理攻擊。如果創(chuàng )建了一個(gè)法師英雄,那么加20點(diǎn)法術(shù)攻擊?;ɡ锖诘钠つw,其實(shí)底層實(shí)現很容易,就是建模,美工比較折磨人。

    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. 亞瑟-心靈戰警       ");
            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("亞瑟穿上了“亞瑟-心靈戰警 ”皮膚");
            int phyattack =20;
            return phyattack;
        }
    }
    

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

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

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

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

    四個(gè)皮膚具體實(shí)現:
    原皮 :亞瑟-圣騎之力 無(wú)加成

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

    賽季皮膚:亞瑟-獅心王

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

    活動(dòng)皮膚:亞瑟-死亡騎士

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

    碎片兌換皮膚:亞瑟-心靈戰警

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

    三、沒(méi)有牛逼的英雄技能,玩個(gè)錘子!

    3.1 確定英雄技能效果

     我們實(shí)現好皮膚后,點(diǎn)擊進(jìn)入游戲,那么,我們玩什么,當然是刷怪,打人,推塔(打人,推塔在系列三開(kāi)始實(shí)現)。我現在創(chuàng  )建的英雄是亞瑟。
       亞瑟有三個(gè)技能和一個(gè)被動(dòng)技能;(被動(dòng)技能我沒(méi)有實(shí)現,因為木有好想法,友友快快幫忙?。?
    
       **第一個(gè)技能:**
    //亞瑟的一技能
        public static  int[] Firstable(boolean Redbuff){  //給技能一個(gè)參數,如果有紅buff或藍buff,那么技能屬性就會(huì )提升
            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{ //無(wú)紅buff
                int phyattack = 100;
                int blood = 0;
                int move = 100;
                res[0]=100;
                res[1]=0;
                res[2]=100;
            }
    
            //一技能特殊屬性,沉默英雄,也就是說(shuō),被擊中的英雄2s內無(wú)法釋放技能。
            res[3] = 1;//標志1為該技能的效果是可以沉默;
    
            return res;
        }
    
    

    第二個(gè)技能實(shí)現:

    //亞瑟的二技能
        public static int[] Secondable(boolean Redbuff,boolean bluebuff){  //給技能一個(gè)參數,如果有紅buff,那么技能屬性就會(huì )提升
            int[] res1 = new int[4];
    
            int phyattack = 300;
            int blood = 0;
            int move = 50;
            int time1 = 7000; // 每7s ,一個(gè)二技能
            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;
        }
    

    第三個(gè)技能實(shí)現:

    //亞瑟的三技能
        public static int[] Thirdable(boolean Redbuff,boolean bluebuff){  //給技能一個(gè)參數,如果有紅buff,那么技能屬性就會(huì )提升
            int[] res2 = new int[4];
            int phyattack = 600;
            int blood = 0;
            int move = 50;
            int time2 = 12000;  //每12s一個(gè)三技能
            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(); //游戲開(kāi)始標記符;
            Boolean red = false;
            Boolean blue = false; //默認英雄初始是沒(méi)有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("系統錯誤");
                        }
                        break;
                    case 11:
                        int res2 = menuzhuangbei.Menuzhuangbei();
                        switch (res2){  //進(jìn)入裝備購買(mǎi)頁(yè)面
                            case 1:
                                Shoe shoe = new Shoe();
                                if(yase.getMoney()>=200){
                                System.out.println(yase.name+"購買(mǎi)了"+shoe.name);
                                yase.phyfangyu+=shoe.getPhyattack();
                                yase.move+=shoe.getMove();
                                yase.money=yase.money-200;
                            }else{
                                    System.out.println("金幣不足,無(wú)法購買(mǎi)"+shoe.name);
                                };break;
                            case 2:
                                Fajia fajia = new Fajia();
                                if(yase.getMoney()>=1200){
                                System.out.println(yase.name+"購買(mǎi)了"+fajia.name);
                                yase.phyattack+=fajia.getPhyattack(); //攻擊力+
                                yase.phyfangyu+=fajia.getPhyfanyu();  //防御力+
                                yase.money=yase.money-1200;
                            }else {
                                    System.out.println("金幣不足,無(wú)法購買(mǎi)"+fajia.name);
                                };break;
                            case 3:
                                Anyinzhanfu anyinzhanfu = new Anyinzhanfu();
                                if(yase.getMoney()>=2000){
                                System.out.println(yase.name+"購買(mǎi)了"+anyinzhanfu.name);
                                yase.phyattack+=anyinzhanfu.getPhyattack(); //攻擊力+
                                yase.blood+=anyinzhanfu.getBlood();  //生命力+
                                yase.money=yase.money-2000;
                            }else {
                                    System.out.println("金幣不足,無(wú)法購買(mǎi)"+anyinzhanfu.name);
                                }
                                break;
                            case 10:
                            case 11:
                            default:
                                System.out.println("系統錯誤");
                        }
                        break;
                    case 4:
                        return;
                    default:
                        System.out.println("自動(dòng)平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()
                +" 當前技能冷卻時(shí)間 "+arr[3]+"ms");
            }
    

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

    3.3 技能釋放演示

    使用一技能:



    四、光放技能有什么用,刷怪買(mǎi)裝備!

    4.1 刷怪實(shí)現的方法

    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("系統錯誤");
                        }
                        break;
    

    程序運行演示:



    4.2 購買(mǎi)裝備!

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




    總結

    我完全是外行,這是通過(guò)自己的興趣來(lái)練習練習對象的使用和方法的調用,通過(guò)這種興趣與愛(ài)好的結合,我發(fā)現才可以主觀(guān)的學(xué)到更多知識,接下來(lái)我要使用比較難的,那就是多線(xiàn)程,并結合Web,來(lái)實(shí)現兩個(gè)英雄的戰斗!大家多多關(guān)注!不喜勿噴,嗚嗚嗚。

    到此這篇關(guān)于我用java實(shí)現了王者榮耀的皮膚和英雄技能的文章就介紹到這了,更多相關(guān)java王者榮耀內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

    免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

    ja
    亚洲国产精品一区二区美利坚 | 日99久9在线 | 免费| 亚洲精品国产精品国自产观看| 丰满五十六十老熟女HD| 女人扒开腿让男人狂桶30分钟| 制服丝袜中文字幕在线|