带有acm.graphics

时间:2019-04-16 18:04:51

标签: java keyboard keyboard-events keylistener acm.graphics

this question有关。

我有一个内置于ACM Graphics Library中的游戏。我希望能够在按 P键时暂停游戏。但是我查看了文档,似乎简短地提到了关键侦听器,但是在这种情况下并没有使用它们的实际示例(除非我错过了一些内容)。

我不想使用控制台或对话框,因为我不想通过键盘输入数据,我只想能够使用来切换我的暂停方法我的主游戏循环中的 P键。这可能吗?

1 个答案:

答案 0 :(得分:0)

您需要一个类来继承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 */ }

    }
}

如果您的问题(尤其是其他问题)可以提供Minimal, Complete, and Verifiable example,将会很有帮助。