Cómo pausar AnimationTimer para un conjunto Número de segundos?

John A.:

Actualmente estoy trabajando en un juego hecho con JavaFX, y me preguntaba cómo hacer una pausa de AnimationTimer para un número determinado de segundos? He intentado utilizar Thread.sleep, pero hace toda la ventana para congelar. Cualquier ayuda se agradece, puedo proporcionar el código si es necesario.

repollo:

Se puede crear una PauseTransitionque se inicia el temporizador después de una cierta cantidad de tiempo ha pasado.

void pauseTimerForDuration(AnimationTimer timer, Duration duration) {
    PauseTransition pt = new PauseTransition(duration);
    pt.setOnFinished(event -> timer.start());

    timer.stop();
    pt.play();
}

Nota: Este usos javafx.util.Duration, no java.time.Duration.

Si quieres algo que se puede volver a utilizar, a continuación, puede probar una Timeline.

Timeline createPauseTimerTimeline(AnimationTimer timer, Duration duration) {
    return new Timeline(
            new KeyFrame(Duration.ZERO, event -> timer.stop()),
            new KeyFrame(duration, event -> timer.play())
    );
}

A continuación, almacenar el Timelinealgún lugar y llamar playFromStart()cuando se quiere hacer una pausa en el temporizador.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=333559&siteId=1
Recomendado
Clasificación