Я пытаюсь сделать приложение для моего проекта java с помощью slick2d.
Мое приложение - это игра (я действительно не хочу объяснять детали, это не очень важно для вопроса). Но в основном я хочу добавить 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;
}
Объявите boolean energyPressed поверх вашего класса. Это сработает.