public void boss(final Boss boss) {
forward.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
boss.setHp(boss.getHp() - 1);
log("" + boss.getHp());
}
});
if(boss.getHp() > 0){
boss(boss);
}
}
所以,在上面的代码中,我试图在每次点击前进时将bossHp减少1。代码存在stackoverflow错误。 (它只是在一个无限循环中调用boss()。)我怎样才能让它在每次用户点击前进时将bossHp减少1,然后在bossHp< = 0时停止?
注意:按钮前进也在其他地方使用。
谢谢!
编辑:对此错误提前抱歉!显示的代码现在是正确的代码。有任何想法吗?谢谢!
澄清:
我想要发生的是,每次点击按钮前进时检查bossHp UNTIL bossHp< = 0.此时我想退出该方法,但不是在此之前
答案 0 :(得分:0)
这应该有效。此外,您不必将boss作为函数参数传递。您可以将该对象保留为班级中的字段。
public void boss(final Boss boss) {
forward.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(boss.getHp() > 0){
boss.setHp(boss.getHp() - 1);
log("" + boss.getHp());
} else {
//boss is dead
}
}
});
}