我正在尝试使用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--;
}
}
}
答案 0 :(得分:1)
只需添加下一个值,直到释放密钥为止。添加标记并在按键启动时将其清除。
if (input.isKeyDown(Input.KEY_K) && !energyPressed) {
energy++;
energyPressed = true;
}
if (!input.isKeyDown(Input.KEY_K)) {
energyPressed = false;
}
在类的顶部声明boolean energyPressed。这将有效。