Система опроса клавиатуры - PullRequest
3 голосов
/ 13 апреля 2009

Я ищу эффективную систему ввода с клавиатуры для игры на Java. В настоящее время я использую код, который нашел здесь:

Система ввода с клавиатуры

однако это кажется немного неэффективным (пожалуйста, прокомментируйте ваши мысли по поводу кода). Полный код доступен здесь:

Pastebin Code

Я только начал изучать новое решение и разбирать код, но есть ли у кого-нибудь предложения по эффективному способу сделать это в основном игровом цикле (включая объяснение)? Любая помощь будет оценена.

Ответы [ 2 ]

3 голосов
/ 13 апреля 2009

Настройка KeyEventListener; при вызове поместите текущий ключ в буфер с одним ключом.

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

1 голос
/ 31 декабря 2013

Я думаю, что это отличный код. Связанный автор реализовал передачу данных в стиле pull с клавиатуры вместо обычного метода нажатия KeyListener. Эта реализация поддерживает N-key rollover , однако ограничение по USB составляет 6-8 клавиш одновременно.

Если вы хотите немного почистить, храните только те ключи, на которые хотите обратить внимание. Тем не менее, это не спасет вас сильно, только один int записывается в массив при каждом нажатии клавиши.

Что именно вы считаете неэффективным? Для начала, я не вижу никаких петель в связанном коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...