我正在努力使用Java方法
我试图写一些战斗方法,但我有一些困难 代码:我正在努力使用Java方法,java,methods,Java,Methods,我试图写一些战斗方法,但我有一些困难 代码: int attackPower; int defencePower; int healthPoints; int startingHealthPoints; int remainingHealthPoints; int damageDone = 0; //Constructor public Combat(int initialAttackPower, int initialDefen
int attackPower;
int defencePower;
int healthPoints;
int startingHealthPoints;
int remainingHealthPoints;
int damageDone = 0;
//Constructor
public Combat(int initialAttackPower, int initialDefencePower, int initialHealthPoints) {
attackPower = initialAttackPower;
defencePower = initialDefencePower;
healthPoints = initialHealthPoints;
}
//Methods
public void setAttackPower(int newAttackPower) {
attackPower = newAttackPower;
}
public void setDefencePower(int newDefencePower) {
defencePower = newDefencePower;
}
public void setHealthPoints(int newHealthPoints) {
healthPoints = newHealthPoints;
}
int getAttackPower() {
return attackPower;
}
int getDefencePower() {
return defencePower;
}
int getHealthPoints() {
return healthPoints;
}
int getDamageDone() {
damageDone = 5;
return damageDone;
}
int getStartingHealthPoints(int currentHP) {
if (damageDone == 0) {
return startingHealthPoints = healthPoints;
}
else {
return startingHealthPoints = currentHP + damageDone;
}
}
int getRemainingHealthPoints() {
return remainingHealthPoints = startingHealthPoints - damageDone;
}
Combat combat1 = new Combat(15,20,100);
System.out.println("Total HP: " + combat1.getHealthPoints());
System.out.println("Starting HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
System.out.println("Attack 1: " + combat1.getDamageDone());
System.out.println("After Attack 1 HP: " + combat1.getRemainingHealthPoints());
System.out.println("Before Attack 1 HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
System.out.println("Attack 2: " + combat1.getDamageDone());
System.out.println("After Attack 2 HP: " + combat1.getRemainingHealthPoints());
System.out.println("Before Attack 2 HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
System.out.println("Total HP: " + combat1.getHealthPoints());
Total HP: 100
Starting HP: 100
Attack 1: 5
After Attack 1 HP: 95
Before Attack 1 HP: 100
Attack 2: 5
After Attack 2 HP: 95
Before Attack 2 HP: 100
Total HP: 100
MAIN:
int attackPower;
int defencePower;
int healthPoints;
int startingHealthPoints;
int remainingHealthPoints;
int damageDone = 0;
//Constructor
public Combat(int initialAttackPower, int initialDefencePower, int initialHealthPoints) {
attackPower = initialAttackPower;
defencePower = initialDefencePower;
healthPoints = initialHealthPoints;
}
//Methods
public void setAttackPower(int newAttackPower) {
attackPower = newAttackPower;
}
public void setDefencePower(int newDefencePower) {
defencePower = newDefencePower;
}
public void setHealthPoints(int newHealthPoints) {
healthPoints = newHealthPoints;
}
int getAttackPower() {
return attackPower;
}
int getDefencePower() {
return defencePower;
}
int getHealthPoints() {
return healthPoints;
}
int getDamageDone() {
damageDone = 5;
return damageDone;
}
int getStartingHealthPoints(int currentHP) {
if (damageDone == 0) {
return startingHealthPoints = healthPoints;
}
else {
return startingHealthPoints = currentHP + damageDone;
}
}
int getRemainingHealthPoints() {
return remainingHealthPoints = startingHealthPoints - damageDone;
}
Combat combat1 = new Combat(15,20,100);
System.out.println("Total HP: " + combat1.getHealthPoints());
System.out.println("Starting HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
System.out.println("Attack 1: " + combat1.getDamageDone());
System.out.println("After Attack 1 HP: " + combat1.getRemainingHealthPoints());
System.out.println("Before Attack 1 HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
System.out.println("Attack 2: " + combat1.getDamageDone());
System.out.println("After Attack 2 HP: " + combat1.getRemainingHealthPoints());
System.out.println("Before Attack 2 HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
System.out.println("Total HP: " + combat1.getHealthPoints());
Total HP: 100
Starting HP: 100
Attack 1: 5
After Attack 1 HP: 95
Before Attack 1 HP: 100
Attack 2: 5
After Attack 2 HP: 95
Before Attack 2 HP: 100
Total HP: 100
主输出:
int attackPower;
int defencePower;
int healthPoints;
int startingHealthPoints;
int remainingHealthPoints;
int damageDone = 0;
//Constructor
public Combat(int initialAttackPower, int initialDefencePower, int initialHealthPoints) {
attackPower = initialAttackPower;
defencePower = initialDefencePower;
healthPoints = initialHealthPoints;
}
//Methods
public void setAttackPower(int newAttackPower) {
attackPower = newAttackPower;
}
public void setDefencePower(int newDefencePower) {
defencePower = newDefencePower;
}
public void setHealthPoints(int newHealthPoints) {
healthPoints = newHealthPoints;
}
int getAttackPower() {
return attackPower;
}
int getDefencePower() {
return defencePower;
}
int getHealthPoints() {
return healthPoints;
}
int getDamageDone() {
damageDone = 5;
return damageDone;
}
int getStartingHealthPoints(int currentHP) {
if (damageDone == 0) {
return startingHealthPoints = healthPoints;
}
else {
return startingHealthPoints = currentHP + damageDone;
}
}
int getRemainingHealthPoints() {
return remainingHealthPoints = startingHealthPoints - damageDone;
}
Combat combat1 = new Combat(15,20,100);
System.out.println("Total HP: " + combat1.getHealthPoints());
System.out.println("Starting HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
System.out.println("Attack 1: " + combat1.getDamageDone());
System.out.println("After Attack 1 HP: " + combat1.getRemainingHealthPoints());
System.out.println("Before Attack 1 HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
System.out.println("Attack 2: " + combat1.getDamageDone());
System.out.println("After Attack 2 HP: " + combat1.getRemainingHealthPoints());
System.out.println("Before Attack 2 HP: " + combat1.getStartingHealthPoints(combat1.getRemainingHealthPoints()));
System.out.println("Total HP: " + combat1.getHealthPoints());
Total HP: 100
Starting HP: 100
Attack 1: 5
After Attack 1 HP: 95
Before Attack 1 HP: 100
Attack 2: 5
After Attack 2 HP: 95
Before Attack 2 HP: 100
Total HP: 100
理想情况下,每次攻击后,起始健康和剩余健康应相应改变。例如,攻击2后的生命值应该是90,攻击前的生命值应该是95。那么攻击后3的生命值应该是85,攻击前应该是90。诸如此类。我可能犯了一个简单的错误,但我真的需要一些帮助。你的“以前”应该是:
getHealthPoints()
然后是某种receiveAttack()方法,在该方法中,传递表示攻击强度的健康点
public void receiveAttack(int damage) {
healthPoints -= damage;
}
现在,再次调用getHealthPoints(),您将得到您的总数
如果您需要存储“最近的伤害”,当然,请为此添加另一个字段,并在对象受到攻击时将其存储。我正在使用healthPoints作为maxHealthPoints。好的,然后使用getter/setter添加一个新字段。