2

我正在开发一款带有僵尸和蚂蚁的无 GUI 塔防游戏。我的问题是其中一只蚂蚁。它应该将对其造成的伤害的一半(向下取整)反射回僵尸。这是我的蚂蚁代码和僵尸样本。

package proj4;

public class ThiefAnt extends Ant {

    private int taken;

    public ThiefAnt(){
        super(15, 25, "Thief Ant");
    }

    public void takeDamage(int amount, Zombie z){
        setLife(amount, z);
        taken = amount / 2;
    }

    public void attack(Game g){
        Zombie z = g.getHorde().elementAt(0);
        z.takeDamage(taken);
    }
}

package proj4;

public class GiantZombie extends Zombie implements Gigantic {

    public GiantZombie() {
        super(40, 20, "Giant Zombie");
    }

    public void attack(Game g) {
        Ant a = g.getColony().elementAt(0);
        a.takeDamage(35, this);
    }
}

我的问题是所采用的变量。因为它setLife的参数数量工作正常,蚂蚁根据数量受到伤害。但是对于采取的变量,将其设置amount为什么都不做,它只包含 0。谁能告诉我我的代码有什么问题?谢谢大家。

4

1 回答 1

3

这样的实现不会更好地反映损害:

public void takeDamage(int amount, Zombie z){
    setLife(amount, z);
    z.takeDamage(amount / 2);
}
于 2012-11-25T21:04:11.743 回答