如何延迟方法的重复执行?

时间:2017-11-09 15:09:40

标签: java

我是java新手,我试图在延迟后不断将“僵尸”实体添加到我的游戏中,然后随着时间的推移缩短延迟。

在我的new DateTime(date).minusSeconds(1).toDate()课程中,我已经获得了代码,可以在运行PlayState方法时将实体生成一个位置(其中包含update();等等。为清晰起见,未显示。 )

getInput();

如何延迟缩短?我猜我会做出延迟,然后使用一个乘法器,我每10秒左右就会变小,但是我该怎么办?

2 个答案:

答案 0 :(得分:0)

现在,我对你班上更精细的工作情况知之甚少,但这可能会让你大致了解我的意思:

int counter = 50;
for(int i = 100; i >= 0; i--)
{
    if(i == counter)
    {
        counter = counter / 2;
        this.entities.add(new Zombie(-535));
    }
}

假设i是游戏的总运行时间,而counter表示想要添加僵尸时游戏的百分比。

如果你想在50%的运行时间之后添加一个僵尸(这里是100秒),那么当时间减少时,你会检查是否已经到了添加僵尸的时间(这里,50秒)。 / p>

我在这里做的是将延迟减少到一半,并继续检查是否已经到了添加僵尸的时候了。

答案 1 :(得分:0)

也许你可以在执行的线程上调用sleep:

int sleepInMs = 5000
Thread.sleep(sleepInMs);
sleepInMs+=1000; //Then of course handle the case when sleepInMs == 0

真的需要有关您的实施的更多信息。