我有一个游戏,我希望能够在按下P 键时暂停游戏。但是,在游戏运行时,KeyListener似乎没有检测到P 键已被按下。我的代码正确吗?我放在addKeyListener正确的地方了吗?SO上有类似的问题,但是他们似乎都在使用JFrame,而我正在使用ACM Graphics Library。不确定这是否会有所作为。主游戏循环:@Overridepublic void run() { addKeyListener(new MyKeyListener()); displayStartScreen(); displayUI(); drawBricks(getWidth() / 2.0, BRICK_Y_OFFSET); drawPaddle(); while (lives > 0) { drawBall(); playGame(); // additional game loop if (brickCounter == 0) { removeAll(); // removes all game objects displayUI(); drawBricks(getWidth() / 2.0, BRICK_Y_OFFSET); drawPaddle(); brickCounter = 100; } } } if (brickCounter > 0) { removeAll(); printGameOver(); }}额外的游戏循环:private void playGame() { getBallVelocity(); while (true) { moveBall(); updateUI(); if (ball.getY() >= getHeight()) { lives--; break; } if (brickCounter == 0) { break; } }}KeyListener 类: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!"); // test } } @Override public void keyReleased(KeyEvent e) { /* Empty body */ } @Override public void keyTyped(KeyEvent e) { /* Empty body */ }}
1 回答

海绵宝宝撒
TA贡献1809条经验 获得超8个赞
修复了问题。编码
addKeyListener(new MyKeyListener());
不正确,应该是
addKeyListeners(new MyKeyListener());
添加回答
举报
0/150
提交
取消