为了账号安全,请及时绑定邮箱和手机立即绑定

KeyListener 未检测到按键

KeyListener 未检测到按键

隔江千里 2022-10-12 10:12:29
我有一个游戏,我希望能够在按下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());


查看完整回答
反对 回复 2022-10-12
  • 1 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号