如何计算 libGdx 游戏的 shoutPower?
how to calculate shoutPower for my libGdx game?
this.maxHp = 100;
this.hp = this.maxHp;
这意味着物体有 100hp,如果我们击中物体,它会从物体中减去 5hp。
这是检查对象是否受损的方法:
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),damage 可能是我们放入方法 takeDamage(int dmg) 中的任何变量。在这种情况下 int dmg = 5;
我不能这样计算:
结果 = maxHp - hp
每次命中增加 5hp 的结果
5..10..15..20..
这是方法,我把字体放在:
damageFont.draw(batch, "" + (maxHp - hp), position.x, position.y + 130, 85, 1, false);
}
}
(maxHp - hp) - 增加 5hp 的结果,每次命中 5.. 10.. 15.. 20..
相反,我需要计算交易伤害的数量,但不是常数值。
(maxHp - hp) 取而代之的是 return 5,如果我们将 5 放入 takeDamage(int dmg)
或 10,如果我们输入 10.
这是每次命中所承受的伤害量:
应该是 5, 5, 5, 5
不是:5...10...15...20
就像 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);
this.maxHp = 100;
this.hp = this.maxHp;
这意味着物体有 100hp,如果我们击中物体,它会从物体中减去 5hp。
这是检查对象是否受损的方法:
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),damage 可能是我们放入方法 takeDamage(int dmg) 中的任何变量。在这种情况下 int dmg = 5;
我不能这样计算:
结果 = maxHp - hp
每次命中增加 5hp 的结果
5..10..15..20..
这是方法,我把字体放在:
damageFont.draw(batch, "" + (maxHp - hp), position.x, position.y + 130, 85, 1, false);
}
}
(maxHp - hp) - 增加 5hp 的结果,每次命中 5.. 10.. 15.. 20..
相反,我需要计算交易伤害的数量,但不是常数值。
(maxHp - hp) 取而代之的是 return 5,如果我们将 5 放入 takeDamage(int dmg) 或 10,如果我们输入 10.
这是每次命中所承受的伤害量:
应该是 5, 5, 5, 5
不是:5...10...15...20
就像 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);