acm.graphics的关键监听器

问题描述 投票:-1回答:1

this question有点相关。

我有一个建在ACM Graphics Library的游戏。我希望能够在按下P键的同时暂停游戏。但是我查看了文档,似乎简要提到了关键的监听器,但没有在这种情况下使用它们的实际例子(除非我错过了一些东西)。

我不想使用控制台或对话框,因为我不想通过键盘输入数据,我只想在主游戏循环中使用P键打开和关闭暂停方法。这可能吗?

java keyboard keyboard-events keylistener acm.graphics
1个回答
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(特别是对于进一步的问题)会很有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.