王者荣耀中铭文装配是怎么实现的?

王者荣耀中铭文装配是怎么实现的?

例如:第三章 王者荣耀中铭文装配是怎么实现的?


在这里插入图片描述

前言

在之前的一,二章中。第一篇主要通过对象和类创建一个英雄,第二篇主要是通过方法函数和类的实例化,实现英雄皮肤穿戴,刷野怪,购买装备。今天第3章。我们将通过链表+二维数组,来实现王者荣耀铭文装备。

提示:以下是本篇文章正文内容,下面案例可供参考

一、分析铭文都有什么

1.1 铭文类别分析

在这里插入图片描述

 三种分类,分别是红色,绿色,蓝色,红色代表攻击,绿色代表防御,蓝色代表法术。还有1级、2级、3级、4级、5级等铭文类型,不同等级的铭文有不
 同的名字。 铭文是王者荣耀里可以在游戏中不用购买装备就直接增加人物属性的一种道具,可以通过铭文碎片兑换或者是钻石、点券抽奖来获得。

所以我们的定义:
1.定义三个父类对Red(红色铭文) , Blue(蓝色铭文),Green(绿色铭文);红色铭文物理防御加2.3,蓝色铭文移速加0.4%;绿色铭文冷却时间加0.6%;
2.红色,历史,绿色有对应的子类,我们创造的英雄是亚瑟,那么今天我们就实现亚瑟的铭文搭配;
王者荣耀亚瑟的铭文出装可以使用:1、宿命10、虚空10、调和10;2、调和10、回声10、宿命10;3、宿命10、狩猎10、鹰眼*10
宿命铭文增加的最大生命和物理防御,调和的最大生命,回声的物理防御和法术防御挺高。这样在游戏中出装就可以稍微偏向武器一端,保证亚瑟的输出。而调和的回血、移速,回声的冷却缩减让亚瑟足够耐线,这使敌人在战场上不停地分兵看守亚瑟所在路线,又打不死亚瑟,所以这可以用来压制那个看线敌人的经济。
提高的移动速度可以使得亚瑟的追击能力更强,提高的攻击速度可以使得亚瑟在一技能标记目标后打出更多的伤害,提高的物理穿透可以使得亚瑟在前期对地方官脆皮英雄造成更高的伤害,提高的最大生命以及物理防御可以让亚瑟在前期面对敌方物理输出时无所畏惧。

1.2 铭文布局分析

我们主要是实现小程序的功能,布局其实是前端该干的事,我们主要通过二维数组来实现铭文布局;
在这里插入图片描述

二、代码实现

2.1 三种父类铭文实现

红色:

package mingwen;

public class Red {
    
    
    private float defense = 2.3f; //防御加2.3
    private int grade = 1; //初始等级为1级

    public int getGrade() {
    
    
        return grade;
    }

    public void setGrade(int grade) {
    
    
        this.grade = grade;
    }

    public float getDefense() {
    
    
        return defense;
    }

    public void setDefense(float defense) {
    
    
        this.defense = defense;
    }

}

蓝色:

package mingwen;

public class Blue {
    
    
    private float move = 0.004f; //移速加0.4%
    private int grade = 1; //初始等级为1级

    public int getGrade() {
    
    
        return grade;
    }

    public void setGrade(int grade) {
    
    
        this.grade = grade;
    }

    public float getMove() {
    
    
        return move;
    }

    public void setMove(float move) {
    
    
        this.move = move;
    }

}

绿色:

package mingwen;

public class Green {
    
    
    private float cool = 0.006f; //技能冷却+0.6%
    private int grade = 1; //初始等级为1级
    public float getCool() {
    
    
        return cool;
    }

    public void setCool(float cool) {
    
    
        this.cool = cool;
    }

    public int getGrade() {
    
    
        return grade;
    }

    public void setGrade(int grade) {
    
    
        this.grade = grade;
    }


}

2.2 三种子类铭文实现

2.2.1 宿命铭文实现

package mingwen;
//宿命是红色铭文,继承红色铭文属性
public class Suming  extends Red{
    
    
    private  String name="宿命";
   private float attackspeed = 0.007f;
   private float blood = 33.7f;

    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public float getAttackspeed() {
    
    
        return attackspeed;
    }

    public void setAttackspeed(float attackspeed) {
    
    
        this.attackspeed = attackspeed;
    }

    public float getBlood() {
    
    
        return blood;
    }

    public void setBlood(float blood) {
    
    
        this.blood = blood;
    }

}


2.2.2 调和铭文实现

package mingwen;
//调和是蓝色铭文,继承蓝色铭文属性
public class Tiaohe extends Blue{
    
    
    private  String name="调和";
    private float blood = 450.0f; //基础生命值
    private float makeBlool = 52; //每秒回血52

    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public float getBlood() {
    
    
        return blood;
    }

    public void setBlood(float blood) {
    
    
        this.blood = blood;
    }

    public float getMakeBlool() {
    
    
        return makeBlool;
    }

    public void setMakeBlool(float makeBlool) {
    
    
        this.makeBlool = makeBlool;
    }
}


2.2.2 虚空铭文实现

package mingwen;
//虚空是绿色铭文,继承绿色铭文属性
public class Xukong extends Green {
    
    
    private  String name="虚空";

    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    private  float blood = 37.5f;
    public float getBlood() {
    
    
        return blood;
    }

    public void setBlood(float blood) {
    
    
        this.blood = blood;
    }
}

三、控制台输出

在这里插入图片描述
铭文选择菜单:

package Menu;

import java.util.Scanner;

public class Menumingwen {
    
    
     public int[] choseMingwen1(){
    
    
         String[] arr = {
    
    "宿命","调和","虚空"};
         int[] result = new int[2];
         System.out.println("+++++++++++");
         for(int i =0;i<arr.length-1;i++){
    
    
             System.out.print(i+1+"<"+arr[i]+">"+"   ");
         }
         System.out.println(3+"<"+arr[2]+">"+"   ");
         System.out.println("+++++++++++");
         System.out.println("输入你要选择的铭文");
         Scanner sc= new Scanner(System.in);
         int res = sc.nextInt();
         result[0]=res;
         System.out.println("输入你要选择的铭文数量");
         int num = sc.nextInt();
             result[1] = num;
             if (num > 10) {
    
    
                 System.out.println("当前准备该铭文已达上限");

                 return null;
             }
         return result;
     }
}

在这里插入图片描述
具体属性加成:

   //穿戴铭文

        if (menulogin.Menulogin() == 2) {
    
    
            int red = 0;
            int blue = 0;
            int green = 0;
            Menumingwen yaseismingwen = new Menumingwen();
            int[] a = yaseismingwen.choseMingwen1();

            if (a[0] == 1) {
    
    
                Suming suming = new Suming();
                yase.setPhyfangyu((int) (yase.getPhyfangyu() + a[1] * suming.getDefense()));
                yase.setBlood((int) (yase.getBlood() + a[1] * suming.getBlood()));
                yase.setAttackspeed(yase.getAttackspeed() + a[1] * suming.getAttackspeed());
                System.out.println("装备" + a[1] + "个" + suming.getName() + "成功!");
            }


            if (a[0] == 2) {
    
    
                Tiaohe tiaohe = new Tiaohe();
                yase.setBlood((int) (yase.getBlood() + a[1] * tiaohe.getBlood()));
                yase.setMove((int) (yase.getMove() + a[1] * yase.getMove() * tiaohe.getMove()));
                yase.setMakeblood(yase.getMakeblood() + a[1] * tiaohe.getMakeBlool());
                System.out.println("装备" + a[1] + "个" + tiaohe.getName() + "成功!");

            }

            if (a[0] == 3) {
    
    
                Xukong xukong = new Xukong();
                yase.setBlood((int) (yase.getBlood() + a[1] * xukong.getBlood()));
                yase.setCool(yase.getCool() + a[1] * xukong.getCool());
                System.out.println("装备" + a[1] + "个" + xukong.getName() + "成功!");
            }
        }

        if (menulogin.Menulogin() == 4) {
    
    
            System.out.println(yase.getName() + "当前属性为" + " 金币 " + yase.getMoney() + " 物理攻击 " + yase.getPhyattack() + " 血量 " + yase.getBlood() + " 移速 " + yase.getMove()
                    + " 攻速 " + yase.getAttackspeed() + " 冷却时间 " + yase.getCool() + " 每秒回血 " + yase.getMakeblood());
        }

在这里插入图片描述
我们在装备虚空看看数值面板;
在这里插入图片描述

3.1 代码下载:

下载链接:王者荣耀java小游戏

3.2 总结

今天我们主要实现了铭文的实现,下一期我将带大家利用多线程来实现匹配和铭文升级的功能。欢迎关注,学习java关注沉默着忍受!带你体验不一样的快乐!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ILOVEMYDEAR/article/details/117476916