gpt4 book ai didi

java - 如何减慢时间轴关键帧持续时间

转载 作者:行者123 更新时间:2023-12-02 11:50:49 25 4
gpt4 key购买 nike

您好,是否可以减慢时间线的速度?我的意思是我们可以操纵关键帧持续时间。

我想实现轮盘赌开始快速旋转然后减慢的效果。

但是关键帧创建一次并添加到时间轴中。

我的代码现在看起来像这样。

button.setOnAction(event -> {

tick = 0.01;

roll.setText("0");
roll.setFont(new Font(72));

timeline = new Timeline();
timeline.setCycleCount(Timeline.INDEFINITE);

final KeyFrame keyFrame = new KeyFrame(Duration.seconds(tick),
e -> {
randomNum = ThreadLocalRandom.current().nextInt(1, 66 + 1);

roll.setText(randomNum + "");
tick = tick + 0.01;
if (tick >= 1.0) timeline.stop();

});

timeline.getKeyFrames().add(keyFrame);
timeline.playFromStart();
});
或者我应该在 for 循环中通过法令线程 sleep 来执行此操作?然后观察它并在任何时候使用?

最佳答案

您可以构建一个 KeyFrame 列表,将它们全部添加到时间轴中,然后只需播放时间轴一次。以下内容与您尝试实现的内容等效:请注意,掷骰子需要 10 * 100 * 101/2 = 50500 毫秒(50.5 秒),这可能有点太长了,因此您可能需要调整其中的一些值。

Duration nextFrameTime = Duration.millis(10);
Timeline timeline = new Timeline();
for (Duration frameTimeIncrement = Duration.millis(10);
frameTimeIncrement.lessThan(Duration.seconds(1));
frameTimeIncrement = frameTimeIncrement.add(Duration.millis(10))) {
KeyFrame keyFrame = new KeyFrame(nextFrameTime,
e -> roll.setText(ThreadLocalRandom.current().nextInt(1, 66 + 1) + ""));
timeline.getKeyFrames().add(keyFrame);
nextFrameTime = nextFrameTime.add(frameTimeIncrement);
}
timeline.play();

关于java - 如何减慢时间轴关键帧持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47885029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com