如何为我的libGdx游戏计算shoutPower?

时间:2018-02-14 17:58:22

标签: java android libgdx

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

1 个答案:

答案 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);