slick2d 整数和键盘输入

slick2d integers and keyboard inputs

我正在尝试使用 slick2d 为我的 java 项目制作应用程序。

我的应用程序是一个游戏(我真的不想解释细节,它与问题无关)。但基本上我想在按下分配的键时添加 1 个整数(例如 'k')。所以当我按 k 时,整数本应只有 1,但它却增加了很多值。我认为这与 int delta 有关吗?这是我的代码:

public void update(GameContainer gc, StateBasedGame sbg, int delta) throws   SlickException {  
    Input input = gc.getInput();   
    if (clickPic[0] == true) {  
        if (input.isKeyDown(Input.KEY_K)) {  
            energy++;  
        }  
        if (input.isKeyDown(Input.KEY_F)) {  
            life--;  
        }  
        if (input.isKeyDown(Input.KEY_M)) {  
            life--;  
        }  
    }  

}  

简单地说,在释放键之前不要添加下一个值。添加标志并在按键启动时将其清除。

if (input.isKeyDown(Input.KEY_K) && !energyPressed) {
    energy++;
    energyPressed = true;
}
if (!input.isKeyDown(Input.KEY_K)) {
    energyPressed = false;
}

在您的 class 之上声明 boolean energyPressed。这会起作用。