Animation 暂停动画计时器JavaFX
我正在使用JavaFX制作一个游戏。我只是想知道如何暂停动画计时器。我想按一下键盘上的某个键,计时器就会暂停,如果再按一下,计时器就会恢复。有可能吗?提前谢谢 我尝试过在之后再次使用timer.stop()和timer.start(),但计时器只会停止,不会再次启动Animation 暂停动画计时器JavaFX,animation,javafx,Animation,Javafx,我正在使用JavaFX制作一个游戏。我只是想知道如何暂停动画计时器。我想按一下键盘上的某个键,计时器就会暂停,如果再按一下,计时器就会恢复。有可能吗?提前谢谢 我尝试过在之后再次使用timer.stop()和timer.start(),但计时器只会停止,不会再次启动 gameScene.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() { @Override publ
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()
。如果您遇到了一些具体问题,请回答您的问题,并提供一个演示该问题的示例。