# 王者荣耀中一个英雄是怎么被产生的?(一)

对象和类的小练习一) 我呢平时也会玩玩游戏,比如今天要说的这个王者荣耀,其实把这个游戏我平时没事的时候都会玩一下,然后突然脑洞打开,想了一下,我自己是一个学习程序的,何不模拟一下这个游戏里面一些东西出来玩玩,当然这并不是只是为了玩,顺便复习 Java 中 (OOP) 的相关的一些知识

# 前期准备

我们要在 IDEA 上创建一个新的项目,创建好一个项目后,我们需要创建 5 个包,分别是英雄包,装备包,铭文包,野怪包,皮肤包

然后我们就可以一个一个的实现这些功能了。

目录

# 实现我的英雄梦!

# 1. 英雄基本属性实现

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.example.demo.hero;
import lombok.Data;

/**
* @ProjectName: demo
* @Package: com.example.demo.hero
* @ClassName: Hero
* @Author: 码 坑
* @Description: Hero
* @Date: 2021/5/21 10:39
* @Version: 1.0
* 所有Get or Set 方法即用 @Data注解替代
*/
@Data
public class Hero {

public String name; //英雄的名字
public String type; //英雄的职业
public int blood; //英雄的基本血量
public int phyattack; //英雄的基本物理攻击
public int Magicattavk; //英雄的基本法术攻击
public int phyfangyu; //英雄的基础防御
public int attavknum; //普通伤害的值
public int move; //移动速度
public int money; //经济

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;
Magicattavk = magicattavk;
this.phyfangyu = phyfangyu;
this.attavknum = attavknum;
this.move = move;
this.money = money;
}

//受到普通攻击
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 == "战士" || this.type == "刺客") {
this.attavknum += phyattack;
}
if (this.type == "法师") {
this.attavknum += Magicattavk;
}
return attavknum;
}
}


# 2. 装备包

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

# 鞋子

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.example.demo.equipment;

import lombok.Data;

/**
* 抵抗之靴
*
* @ProjectName: demo
* @Package: com.example.demo.equipment
* @ClassName: Equipment
* @Author: 码 坑
* @Description: Equipment
* @Date: 2021/5/21 10:43
* @Version: 1.0
* 所有Get or Set 方法即用 @Data注解替代
*/
@Data
public class Equipment {

/**
* 效果:减低敌方的攻击,也就是增加自己的物防
*/
public String name = "抵抗之靴";
public int phyattack = 200;
public int mckattack = 0;
public int move = 200;//英雄移动速度+200;



}

# 反甲

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.example.demo.equipment;

import lombok.Data;

/**
* 反甲
*
* @ProjectName: demo
* @Package: com.example.demo.equipment
* @ClassName: The_armor
* @Author: 码 坑
* @Description: The_armor
* @Date: 2021/5/21 10:46
* @Version: 1.0
* 所有Get or Set 方法即用 @Data注解替代
*/
@Data
public class The_armor {

public String name = "反甲";
public int phyattack = 40;
public int phyfanyu = 420;
public double fashang = 0.2; //冷却时间

}

# 暗影战斧

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.example.demo.equipment;

import lombok.Data;

/**
* 暗影战斧
*
* @ProjectName: demo
* @Package: com.example.demo.equipment
* @ClassName: Shadow_tomahawk
* @Author: 码 坑
* @Description: Shadow_tomahawk
* @Date: 2021/5/21 10:49
* @Version: 1.0
* 所有Get or Set 方法即用 @Data注解替代
*/
@Data
public class Shadow_tomahawk {

public String name = "暗影战斧";
public int phyattack = 85; //加物理攻击85
public int blood = 500; //生命值加500
public int cool = 15; //冷却缩减15
}

# 3. 没有经济来源怎么行?野怪实现

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

# 野猪

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.example.demo.creeps;

import lombok.Data;

/**
* 野猪
*
* @ProjectName: demo
* @Package: com.example.demo.creeps
* @ClassName: pig
* @Author: 码 坑
* @Description: pig
* @Date: 2021/5/21 10:51
* @Version: 1.0
* 所有Get or Set 方法即用 @Data注解替代
*/
@Data
public class pig {
public int num = 80;
}

# 小鸟

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.example.demo.creeps;

import lombok.Data;

/**
* 小鸟
*
* @ProjectName: demo
* @Package: com.example.demo.creeps
* @ClassName: Bird
* @Author: 码 坑
* @Description: Bird
* @Date: 2021/5/21 10:53
* @Version: 1.0
*/
@Data
public class Bird {

public int num = 150;
}

# 河蟹

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.example.demo.creeps;

import lombok.Data;

/**
* 河蟹
*
* @ProjectName: demo
* @Package: com.example.demo.creeps
* @ClassName: Crabs
* @Author: 码 坑
* @Description: Crabs
* @Date: 2021/5/21 10:54
* @Version: 1.0
* 所有Get or Set 方法即用 @Data注解替代
*/
@Data
public class Crabs {

public int num = 150;
}

# 小兵

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.example.demo.creeps;

import lombok.Data;

/**
* 小兵
*
* @ProjectName: demo
* @Package: com.example.demo.creeps
* @ClassName: Soldiers
* @Author: 码 坑
* @Description: Soldiers
* @Date: 2021/5/21 10:55
* @Version: 1.0
* 所有Get or Set 方法即用 @Data注解替代
*/
@Data
public class Soldiers {

public int num = 150;
}

# 三、开始游戏啦

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.example.demo;

import com.example.demo.creeps.Bird;
import com.example.demo.creeps.Crabs;
import com.example.demo.creeps.Soldiers;
import com.example.demo.creeps.pig;
import com.example.demo.equipment.Equipment;
import com.example.demo.equipment.Shadow_tomahawk;
import com.example.demo.equipment.The_armor;
import com.example.demo.hero.Hero;

public class DemoApplication {

public static void main(String[] args) {
Hero hero = new Hero("亚瑟", "战士", 1000, 200, 0, 500, 200, 50, 0);
System.out.println(hero.name);
System.out.println(hero.money);
//开始发育(先产生野怪,小兵,河蟹的实例化对象)
pig pig1 = new pig();
Bird Bird = new Bird();
Soldiers soldiers = new Soldiers();
Crabs crabs2 = new Crabs();
for (int i = 0; i <= 10; i++) { //打了10轮
hero.money += pig1.getNum() + Bird.getNum() + soldiers.getNum() + crabs2.getNum();
}
System.out.println(hero.name + "的经济现在是" + hero.money);

//开始创建装备类
System.out.println("购买装备前:");
System.out.println(hero.name + "当前的属性" + "生命值:" + hero.blood + "物理攻击:" + hero.phyattack + "法术攻击:" + hero.Magicattavk +
" 物理防御:" + hero.phyfangyu + "移动速度:" + hero.move);

//判断经济是否购买装备
if (hero.money >= 200) {
Equipment equipment = new Equipment();
System.out.println(hero.name + "购买了" + equipment.name);
hero.phyfangyu += equipment.getPhyattack();
hero.move += equipment.getMove();
hero.money = hero.money - 200;
}
if (hero.money >= 1200) {
The_armor armor = new The_armor();
System.out.println(hero.name + "购买了" + armor.name);
hero.phyattack += armor.getPhyattack(); //攻击力+
hero.phyfangyu += armor.getPhyfanyu(); //防御力+
hero.money = hero.money - 1200;
}
if (hero.money >= 2000) {
Shadow_tomahawk tomahawk = new Shadow_tomahawk();
System.out.println(hero.name + "购买了" + tomahawk.name);
hero.phyattack += tomahawk.getPhyattack(); //攻击力+
hero.blood += tomahawk.getBlood(); //生命力+
hero.money = hero.money - 2000;
}
System.out.println("购买装备后:");
System.out.println(hero.name + "当前的属性" + "生命值:" + hero.blood + "物理攻击:" + hero.phyattack + "法术攻击:" + hero.Magicattavk +
" 物理防御:" + hero.phyfangyu + "移动速度:" + hero.move);
}
}

效果

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

# 码坑

如以上内容对你有帮助,请转发收藏哦,更多相关内容请关注码坑公众号

公众号

码坑博客

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

码坑 微信支付

微信支付

码坑 支付宝支付

支付宝支付

码坑 QQ支付

QQ支付