this.maxHp = 100;
this.hp = this.maxHp;
它的平均物体得到100hp,如果我们击中物体,它会从物体上减去5 hp。
这是方法检查对象是否受到损害:
public boolean takeDamage(int dmg) {
hp -= dmg;
reddish += 1.0f;
if (hp <= 0) {
return true;
}
return false;
}
这里是检查子弹是否命中对象的方法:
public void checkCollisions() {
List<Bullet> b = bulletEmitter.getActiveList();
for (int i = 0; i < b.size(); i++) {
for (int j = 0; j < players.size(); j++) {
if (b.get(i).isArmed() && players.get(j).getHitArea().contains(b.get(i).getPosition())) {
b.get(i).deactivate();
players.get(j).takeDamage(5);
map.clearGround(b.get(i).getPosition().x, b.get(i).getPosition().y, 8);
continue;
}
}
我需要显示受到伤害(int dmg),损坏可能是我们在方法takeDamage(int dmg)中放入的任何变量。 int这种情况int dmg = 5;
我无法计算出来:
result = maxHp - hp
使用evry hit增加5hp的结果
5 .. 10 .. 15 .. 20 ..
这里是方法,我把字体放在:
damageFont.draw(batch, "" + (maxHp - hp), position.x, position.y + 130, 85, 1, false);
}
}
(maxHp - hp) - 在5hp增加结果,evry命中5 .. 10 .. 15 .. 20 ..
相反,我需要计算交易损害的数量,但不能计算常数值。
(maxHp - hp)相反,如果我们在takeDamage(int dmg)中输入5,那么它应该返回5 或10,如果我们放10。
受到伤害后的伤害程度:
应为5,5,5,5
不是:5 ... 10 ... 15 ... 20
答案 0 :(得分:0)
就像MarsAtomic提到你每次击中都有你的伤害一样,只需将其保存为新的实例变量并显示它而不是(maxHp - hp):
private int damageTaken;
public boolean takeDamage(int dmg) {
damageTaken = dmg;
hp -= dmg;
reddish += 1.0f;
if (hp <= 0) {
return true;
}
return false;
}
当你画出你的字体时:
damageFont.draw(batch, "" + damageTaken, position.x, position.y + 130, 85, 1, false);