这是负责调平NPC的方法。例如,如果我们给他下一个等级100 xp,它将使他的等级递增。但是对于下一个级别,如果下一个级别所需的xp等于NPC当前拥有的exp数量,则忽略该语句。但是当我打印它时,它的确是正确的。怎么会来?
public void setExp(int exp) throws Exception {
if (exp >= 0) {
this.exp += exp;
if (this.exp > expForNextLvl) {
while (this.exp > expForNextLvl) {
setLvl(1);
setExpForNextLvl(Math.round(expForNextLvl * 1.2 + 5));
}
} else if (Double.valueOf(this.exp).equals(Double.valueOf(expForNextLvl))) {
setLvl(1);
setExpForNextLvl(Math.round(expForNextLvl * 1.2 + 5));
}
} else {
throw new Exception("exp less than 0");
}
}
答案 0 :(得分:0)
.equals()方法用于比较字符串而不是双精度数,我建议使用this.exp == expForNextLvl