Animation 暂停动画计时器JavaFX

Animation 暂停动画计时器JavaFX,animation,javafx,Animation,Javafx,我正在使用JavaFX制作一个游戏。我只是想知道如何暂停动画计时器。我想按一下键盘上的某个键,计时器就会暂停,如果再按一下,计时器就会恢复。有可能吗?提前谢谢 我尝试过在之后再次使用timer.stop()和timer.start(),但计时器只会停止,不会再次启动 gameScene.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() { @Override publ

我正在使用JavaFX制作一个游戏。我只是想知道如何暂停动画计时器。我想按一下键盘上的某个键,计时器就会暂停,如果再按一下,计时器就会恢复。有可能吗?提前谢谢

我尝试过在之后再次使用timer.stop()和timer.start(),但计时器只会停止,不会再次启动

gameScene.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {

        @Override
        public void handle(KeyEvent t) {
            if(t.getCode()== KeyCode.ESCAPE)
            {
                if(!pause){
                    pause = true;
                    timer.start();
                }
                if(pause){
                    pause = false;
                    timer.stop();
                }

            }
        }
    });
gameScene.addEventHandler(按下KeyEvent.KEY_,新建EventHandler()){
@凌驾
公共无效句柄(KeyEvent t){
if(t.getCode()==KeyCode.ESCAPE)
{
如果(!暂停){
暂停=正确;
timer.start();
}
如果(暂停){
暂停=错误;
timer.stop();
}
}
}
});

您使用的是连续的
if
语句,其中如果第一个语句执行,那么第二个语句将执行,没有异常。看看你的代码:

如果(!暂停){
暂停=正确;
timer.start();
}
如果(暂停){
暂停=错误;
timer.stop();
}
pause
为false时,执行第一个
if
块,将
pause
设置为true并启动计时器。这使得第二个
if
块的条件计算为true,从而导致
pause
被设置回false,并且计时器被停止。换句话说,你先启动计时器,然后立即停止计时器。注意,
pause
的初始值是多少并不重要,因为在上述代码至少运行一次后,
pause
将为false(因为第二个
if
块)

由于布尔值只有两种可能的状态,并且您希望在这两种状态之间切换,因此只需使用简单的if-else:

if(暂停){
暂停=错误;
timer.start();
}否则{
暂停=真;
timer.stop();
}
维护对的引用,并根据需要调用
#start()
#stop()
。如果您遇到了一些具体问题,请回答您的问题,并提供一个演示该问题的示例。