Как я слушаю определенные события ключа Java, основанные на контексте экрана? - PullRequest
1 голос
/ 29 января 2012

Я работаю над небольшой Java-игрой с несколькими другими людьми, и я немного застрял в отношении ключевых событий. Я нашел фрагмент кода онлайн, который обрабатывает ввод с клавиатуры для 2D-игры. Что меня смущает, так это как реагировать на некоторые ключевые события в зависимости от того, в какой части игры вы находитесь. Например, если вы находитесь в главном меню, W, A, S и D не должны работать , но если вы в игре, они должны.

Единственное решение, которое мне удалось найти, - это просто использовать enum и ключ для определения, какие клавиши следует прослушивать. Это сработало бы, но я не уверен, что есть лучший способ сделать это.

Как прослушать определенные события клавиш Java в зависимости от контекста экрана?

1 Ответ

1 голос
/ 29 января 2012

Создание класса для каждого игрового состояния («главное меню», «экран готовности», «игровое состояние» и т. Д.) Позволит вам реализовать единый шаблон KeyListener один раз в суперклассе, а также для слушателей и логики, специфичных для игрового состояния.

По памяти библиотека Slick предоставляет API, поддерживающий этот подход.

...