ключевой слушатель с acm.graphics - PullRequest
0 голосов
/ 16 апреля 2019

Относится к этому вопросу .

У меня есть игра, встроенная в ACM Graphics Library . Я хочу иметь возможность приостановить игру после нажатия клавиши P . Однако я посмотрел в документации и, кажется, кратко упоминается о ключевых слушателях, но нет реальных примеров их использования в этом контексте (если я что-то пропустил).

Я не хочу использовать консоль или диалоговое окно , так как я не хочу вводить данные с клавиатуры, я просто хочу иметь возможность включать и выключать мой метод паузы с помощью P клавиша в моем основном игровом цикле. Это возможно?

1 Ответ

0 голосов
/ 16 апреля 2019

Вам нужен класс, который подклассы ACM Program, чтобы добавить ключевой слушатель. Во-вторых, вам нужен класс, который реализует KeyListener (это может быть тот же класс), а затем выполните код в KeyListener#keyPressed. Вы можете получить код нажатой клавиши с помощью KeyEvent.getKeyCode и проверить, равна ли она нужной клавише (в данном случае клавише P).

Следующий пример иллюстрирует, как это может работать. Это не проверялось, но это должно сработать.

public class KeyListenerExample extends GraphicsProgram {

    @Override
    public void run() {
        addKeyListeners(new MyKeyListener());
    }

    private class MyKeyListener implements KeyListener {

        @Override
        public void keyPressed(KeyEvent e) {
            int keyCode = e.getKeyCode();
            if (keyCode == KeyEvent.VK_P) {
                System.out.println("Key 'P' has been pressed!");
            }
        }

        @Override
        public void keyReleased(KeyEvent e) { /* Empty body */ }

        @Override
        public void keyTyped(KeyEvent e) { /* Empty body */ }

    }
}

Было бы полезно, если бы вы могли предоставить Минимальный, Полный и Проверяемый пример для вашего вопроса (особенно для дальнейших вопросов).

...