无论如何,给一个变量值一个特定的时间(java)

时间:2018-01-13 17:18:38

标签: java javafx

所以我正在写一个简单的2d javafx游戏,一个想法刚刚进入我的脑海。 我可以给一个布尔值(或任何类型的变量类型)一个选定的时间值。

如果可能,它会是什么样子

2 个答案:

答案 0 :(得分:1)

为什么不是TimeLine
假设您希望在约2秒内更改String foo字段,该字段用于myObject变量引用的对象,该变量被声明为MyObject

myObject.setTemporaryValueForFooField("special value");
Timeline timeline = new Timeline(new KeyFrame(
        Duration.millis(2000),
        ae -> myObject.reuseOriginalValueForFooField()));
timeline.play();

setTemporaryValueForFooField(String)复制当前实例中foo字段的当前值,并为其分配临时值。
reuseOriginalValueForFooField()在达到持续时间后,将foo字段重新分配原始值。

答案 1 :(得分:0)

有几种方法可以做到这一点。您可以使用AtomicBooleanTimer(一个TimerTask)和一个简单的循环。像,

AtomicBoolean ab = new AtomicBoolean(true);
Timer t = new Timer(); // <-- The Timer
t.schedule(new TimerTask() {
    @Override
    public void run() {
        ab.set(false);
    }
}, TimeUnit.SECONDS.toMillis(5)); // <-- once in five seconds.
while (ab.get()) { // <-- while the boolean is true
    System.out.println("It's true");
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
    }
}
t.cancel(); // <-- don't forget to end the Timer.

哪些打印&#34;它是真的&#34; 〜五次。