简单Java 2D游戏-恢复游戏

Simple Java 2D game - resuming the game

我正在编写一个简单的 Java 游戏,在添加 pause/resume 功能时遇到了一些问题。

我的主游戏循环是这样的:

    @Override
    public void run() {
        try {

        while (true) {
            if (!isPaused) {
                Thread.currentThread().sleep(5);
                diamondSpawner();
                collisionDetector();
                repaint();
            } else {

            }
        }
    } catch (InterruptedException e) {
    }
}

此外,我在主类中添加了一个KeyListener,等待用户按'P'暂停游戏。不幸的是,问题是 KeyListener 在暂停状态下不听按键。我怎样才能让它听?

这是主类构造函数中的 KeyListener:

this.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent evt) {
                if (evt.getKeyCode() == KeyEvent.VK_P) {
                    isPaused = !isPaused;
                }
                helicopter.move(evt);
            }
        });

MadProgrammer 解决了我的问题。只需使变量 isPaused 易变即可。 谢谢!