我正在开发一个有僵尸和蚂蚁的无图形用户界面的塔防游戏。我的问题是其中一只蚂蚁。它应该将对它造成的伤害的一半(四舍五入)反射回僵尸。这是我为蚂蚁和僵尸编写的代码。
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);
}
}我的问题是taken变量。对于它的数量,参数setLife工作正常,蚂蚁根据数量受到伤害。但是对于taken变量,将其设置为amount不起任何作用,它只包含0。有人能告诉我我的代码出了什么问题吗?提前感谢大家。
发布于 2012-11-26 05:04:12
这样的实现难道不能更好地反映损害:
public void takeDamage(int amount, Zombie z){
setLife(amount, z);
z.takeDamage(amount / 2);
}https://stackoverflow.com/questions/13555438
复制相似问题