如何暂停 AnimationTimer 设定的秒数?

我目前正在开发一款使用 JavaFX 制作的游戏,我想知道如何将 AnimationTimer 暂停一定的秒数?我尝试使用 Thread.sleep,但它会导致整个窗口冻结。任何帮助将不胜感激,如果需要我可以提供代码。



慕斯王
浏览 111回答 1
1回答

米琪卡哇伊

您可以创建一个PauseTransition在经过一定时间后启动计时器的计时器。void pauseTimerForDuration(AnimationTimer timer, Duration duration) {    PauseTransition pt = new PauseTransition(duration);    pt.setOnFinished(event -> timer.start());    timer.stop();    pt.play();}注意:这里使用javafx.util.Duration,而不是java.time.Duration。如果您想要可以重用的东西,那么您可以尝试使用Timeline.Timeline createPauseTimerTimeline(AnimationTimer timer, Duration duration) {    return new Timeline(            new KeyFrame(Duration.ZERO, event -> timer.stop()),            new KeyFrame(duration, event -> timer.play())    );}然后将其存储在Timeline某个地方并playFromStart()在您想暂停计时器时调用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java