- 608
- 5
- 15
Добрый день.
Значит, хочу я, что-бы при нажатии на кнопку срабатывал метод keyDown, при отжиме keyUp, ну и keyPress в процессе.
Ивент InputEvent.KeyInputEvent срабатывает только в при нажатии и отжиме. Ну ничего, думаю, сделаю небольшой костылик:
Но вот незадача - когда я нажимаю esc или открываю гуи, допустим, то при отжиме ивент не срабатывает.
Как можно реализовать пободное? Бо идей нет.
(попытка 2)
Пробовал ещё while(Keyboard.next()), но тогда майновское управление глючит.
Значит, хочу я, что-бы при нажатии на кнопку срабатывал метод keyDown, при отжиме keyUp, ну и keyPress в процессе.
Ивент InputEvent.KeyInputEvent срабатывает только в при нажатии и отжиме. Ну ничего, думаю, сделаю небольшой костылик:
Код:
@SubscribeEvent
public void key(InputEvent.KeyInputEvent event)
{
int keyId = Keyboard.getEventKey();
for(int i = 0; i < pressedKeys.size(); i++)
{
int id = pressedKeys.get(i);
if(id == keyId)
{
pressedKeys.remove(i);
this.keyUp(keyId);
return;
}
}
this.keyDown(keyId);
pressedKeys.add(keyId);
}
@SubscribeEvent
public void update(TickEvent.ClientTickEvent event)
{
pressedKeys.forEach(e -> keyPress(e));
}
Но вот незадача - когда я нажимаю esc или открываю гуи, допустим, то при отжиме ивент не срабатывает.
Как можно реализовать пободное? Бо идей нет.
(попытка 2)
Пробовал ещё while(Keyboard.next()), но тогда майновское управление глючит.