2015-03-22 2 views
1

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

} 

ответ

1

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

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

Объявление boolean energPressed on top of your class. Это сработает.

+0

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

Смежные вопросы