1

目前我的项目没有时间安排并且令人满意,但如果我有时间安排会更干净。我想拥有它,所以在我宣布任何需要之后,我可以执行以下操作:

if (timer == 2000) {
    System.out.println("2 seconds have passed since "timer" was declared!");
}

我还没有看到那么多关于这个的。抱歉,如果我遗漏了什么。我只是在寻找最好的方法来做到这一点。

编辑
我被问到为什么我需要这个的更多细节......顺便说一句,这是一个僵尸游戏

while(!Display.isCloseRequested()){
    if (whatever == 2 seconds){    //I obviously know a don't right the word seconds next the number 2
        for(int z = 0; z < 2; z++){
            SpawnaZombieAt(leftcorner,20,speed);
        }
     }
}

如果我不够清楚,我正在尝试启动某种计时器。然后每 2 秒左右会再产生 2 个僵尸

4

2 回答 2

2

您在寻找System.currentTimeMillis()System.nanoTime()吗?第一个是对应于 UTC 的低精度计数器,而后者是一个高精度计时器,可用于确定经过的时间。

于 2012-05-13T20:30:12.063 回答
1

如果要在特定延迟后启动特定操作,可以使用ScheduledExecutorService- 例如:

ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.schedule(new Runnable() {
    public void run() {
        System.out.println("2 seconds have passed since this action was scheduled!");
    }
}, 2, TimeUnit.SECONDS);

它会在 2 秒后打印出你的句子。

如果您正在使用秒表,则此问题的答案提出了几种选择

编辑

例如,在您进行编辑之后,该ScheduledExecutorService方法scheduleAtFixedRate可以让您每 2 秒运行一次特定操作。

于 2012-05-13T20:27:57.707 回答