acm.graphics 的关键侦听器
key listener with acm.graphics
与 this question 有点相关。
我在 ACM Graphics Library 中内置了一个游戏。我希望能够在按下 P 键 时暂停游戏。但是我查看了文档,似乎简要提到了关键侦听器,但没有在这种情况下使用它们的实际示例(除非我错过了什么)。
我不想使用 控制台或对话框,因为我不想通过键盘输入数据,我只想能够切换我的暂停在我的主游戏循环中使用 P 键 打开和关闭方法。这可能吗?
您需要一个 class,subclass 是 ACM 的 Program
添加一个关键监听器。其次,您需要一个实现 KeyListener
的 class(这可能与 class 相同),然后在 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 将很有帮助(尤其是对于进一步的问题)。
与 this question 有点相关。
我在 ACM Graphics Library 中内置了一个游戏。我希望能够在按下 P 键 时暂停游戏。但是我查看了文档,似乎简要提到了关键侦听器,但没有在这种情况下使用它们的实际示例(除非我错过了什么)。
我不想使用 控制台或对话框,因为我不想通过键盘输入数据,我只想能够切换我的暂停在我的主游戏循环中使用 P 键 打开和关闭方法。这可能吗?
您需要一个 class,subclass 是 ACM 的 Program
添加一个关键监听器。其次,您需要一个实现 KeyListener
的 class(这可能与 class 相同),然后在 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 将很有帮助(尤其是对于进一步的问题)。