首页 > 解决方案 > 按下按钮时如何在java中只运行一次?

问题描述

我想创建一个游戏,当婴儿在 12 岁时使用按钮进入 Y 位置时,我必须让婴儿返回。我希望它从 12 即 10 移动 2 位置并从 10 移动到 6,但代码将婴儿直接移动到 6。注意:语法错误不允许我将图标和婴儿发布为相同。它是一个变量名。

if (baby_posY==12) {
    if (baby_posY==12) {
      tiles[baby_posX][baby_posY].setIcon(null);
      baby_posY=baby_posY-2;
      tiles[baby_posX][baby_posY].setIcon(icon Baby);   
    }
    if (baby_posY==10) {
      tiles[baby_posX][baby_posY].setIcon(null);
      baby_posY=baby_posY-4;
      tiles[baby_posX][baby_posY].setIcon(icon Baby);
    }
}

标签: javaswing

解决方案


您应该在后续检查中使用 else if,而不是 if。发生的事情是 12 将变为 10,然后它检查 10,并使其变为 6。使用else您可以防止这种情况发生

if (baby_posY==12) { 
    tiles[baby_posX][baby_posY].setIcon(null); baby_posY=baby_posY-2; // **** right here is what's causing the double move
    tiles[baby_posX][baby_posY].setIcon(icon Baby); 
} else if (baby_posY==10) { // adding 'else' will prevent this second condition from triggering if the first was triggered
    tiles[baby_posX][baby_posY].setIcon(null); baby_posY=baby_posY-4; 
    tiles[baby_posX][baby_posY].setIcon(icon Baby); 
}

推荐阅读