我正在进行塔防项目,但遇到了一个小问题。

public void loseHealth(int amo) {
            health -= amo;
            checkDeath();
        }
public void checkDeath() {
            if(health == 0) {
                deleteMob();
            }
        }


这可行,但是当我尝试以下操作时,生命值达到零,并且暴民不会被删除。我一直在努力使其工作约2天,但似乎无法正确处理。我一直未能找到可以帮助您阅读的内容,但我可能找不到合适的位置。

    public void loseHealth(int amo) {
        shot = Value.damage[0] += amo;
        health -= shot;
        checkDeath();
    }

    public void checkDeath() {
        if(health == 0) {
            deleteMob();
        }
    }


我声明了一个数组,它包含:

public static int[] damage = {5, 10};


我在这里拥有两座塔的原因是因为我有两座塔试图造成不同的伤害。现在,我只想让它正常工作,就可以为不同的塔架做零件。如果您需要更多信息,请告诉我。

最佳答案

那是因为您的health变量越来越少到0以下。因此,health == 0将始终返回false。请尝试以下操作:

public void checkDeath() {
    if(health <= 0) {
        deleteMob();
    }
}

关于java - checkDeath()没有被调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23187166/

10-11 00:37