0
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 直到 bossHp <= 0。此时我想退出该方法,但不是在那之前

4

1 回答 1

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
            }
        }
    });
}
于 2013-05-21T07:57:11.930 回答