slick2d целые числа и ввод с клавиатуры

1

Я пытаюсь сделать приложение для моего проекта 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--;  
        }  
    }  

}  
Теги:
slick2d

1 ответ

1
Лучший ответ

Положив это просто, не добавляйте следующее значение до тех пор, пока не будет выпущен ключ. Добавьте флаг и очистите его, когда ключ вставлен.

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

Объявите boolean energyPressed поверх вашего класса. Это сработает.

  • 0
    Большое спасибо! это сработало. Теперь я могу продолжить свой проект.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню