Ввод с клавиатуры не работает в libgdx android

У меня есть эта проблема в течение 2 недель. Я делаю текстовую игру, которая требует от вас печатать. Однако я использую свою собственную систему ввода, а не текстовые поля LIBGDX. В основном то, что мне нужно,

if(Gdx.input.isKeyPressed(Keys.a)){
      //do some stuff
   }

тот. Однако это не работает на Android, отлично работает на рабочем столе, хотя. Я не уверен, почему это, это начинает раздражать меня. Одна вещь, которую я обнаружил, заключается в том, что если вы постоянно нажимаете клавишу на андроиде, она в итоге набирает ее, но это делает игру чрезвычайно утомительной. Я также пытался использовать InputProcessor, но это тоже не работает. Теперь я попробовал практически все, что могу придумать без решения. Любая помощь с благодарностью

РЕДАКТИРОВАТЬ 1:

Я также попробовал InputProcessor. Дело в том, что он ничего не делает при нажатии клавиш, но затем, когда я нажимаю аппаратное обеспечение Android, он делает то, что должен был делать, когда клавиша была первоначально нажата. Также с обоими методами я считаю, что он работает с некоторыми клавиатурами, а не с другими. EG: работает с сенсорной клавиатурой HTC

РЕДАКТИРОВАТЬ 2: С немного более возмутительным раундом я обнаружил, что если я заставляю приложение делать что-то под методом keyIsTyped InputProcessor, оно делает это только после закрытия клавиатуры. не уверен, что это что-то значит

1 ответ

Вы делаете ввод на основе опроса, и я думаю, что вам будет лучше обслуживать структуру на основе событий. С помощью опроса вы узнаете, была ли нажата клавиша, если вам случится проверять ее, пока она нажата (что зависит от частоты обновления), на основе событий вы будете получать событие для каждого нажатия клавиши, которое происходит, всякий раз, когда это происходит, и неважно, насколько это быстро.

См. https://github.com/libgdx/libgdx/wiki/Event-handling

Если у вас возникли проблемы с получением событий клавиатуры таким образом, пожалуйста, оставьте еще один вопрос!

Другие вопросы по тегам