使用SystemcurrentTimeMillis延迟时间

时间:2014-04-16 04:04:08

标签: loops methods time delay milliseconds

我正在处理的代码涉及一群在画布上快速移动的鸟类。我需要做的是使用System.currentTimeMillis()方法减慢鸟类在屏幕上刷新的速度。我需要在while循环中使用它,以便它等待20毫秒才能使鸟再次移动。我不太清楚如何做到这一点。

以下是当前代码:

while(NeWorld.isAlive())
{
    NeWorld.updateWorld();
}

NewWorld.isAlive允许鸟类移动,NeWorld.updateWorld()刷新它。它刷新太快,我需要使用System.currentTimeMillis()方法减慢速度,以便它每20毫秒刷新一次。

1 个答案:

答案 0 :(得分:0)

如果将updateWorld()逻辑放在单独的函数中,则可以按一定的时间间隔调用它。这是一个例子。

boolean iShouldStillUpdateWorld = true;
while (iShouldStillUpdateWorld) {
    if (System.currentTimeMillis() % 20 == 0) {
        updateWorld();
    }
    iShouldStillUpdateWorld = checkIfIShouldUpdateWorld();
}

这只是一个循环并检查是否已经过了20毫秒。如果是这样,它会调用您的updateWorld()函数,然后检查它是否应该继续重复此过程。