暂停和恢复摆动计时器

时间:2018-04-08 22:35:40

标签: java swing

当我按下太空按钮时,我想暂停并恢复我的蛇游戏。

if (keyCode == KeyEvent.VK_SPACE) {
    timer.stop();
}

if (keyCode == KeyEvent.VK_ENTER ) {
    timer.start();
}

我已经这样做但是为了恢复游戏我需要点击“输入”任何想法吗?

2 个答案:

答案 0 :(得分:1)

  

我已经完成了这个但是为了恢复游戏我需要点击"输入"任何想法?

您可以使用相同的KeyStroke来停止/启动Timer。只需检查定时器的状态:

if (timer.isRunning())
    timer.stop();
else
    timer.start();

另外,不要使用KeyListner。您应该使用Key BindingsKeyStroke映射到Action

答案 1 :(得分:0)

@retatu感谢我的想法,我找到了解决方案,我只需要在构造函数中初始化锁定器,就像那样

public Controller(Snake snake,View view) {
    this.snake = snake;
    this.view = view;
    locker = false;
}

然后在代码中使用它

if (keyCode == KeyEvent.VK_SPACE ){
        if(!locker){
            view.timer.stop();
            locker=true;
        }else{
            locker = false;
            view.timer.start();
        }

    }