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。这会起作用。
我正在尝试使用 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。这会起作用。