我试图在每2秒延迟1秒后生成一个对象。然而,我的尝试导致物体在1秒延迟后产生,但随后在异常快速的过去(即比每2秒更频繁地产生)产生。我无法弄清楚为什么我的计时器任务如此靠近地产生对象。任何帮助都会很棒,谢谢。
private Array<Rectangle> spacebars;
public void spawnSpacebar()
{
spacebar = new Rectangle();
spacebar.x = 800;
spacebar.y = MathUtils.random(0, 480-64);
spacebar.width = 64;
spacebar.height = 64;
spacebars.add(spacebar);
}
Timer.schedule(new Task()
{@Override
public void run()
{
spawnSpacebar();
}
}
, 1 // (delay)
, 2 // (every x seconds)
);
答案 0 :(得分:0)
注意:在写完这个答案后我意识到你正试图使用LibGDX Timer类。在这种情况下,请确保您使用的是LibGDX Timer而不是java.util.Timer
看起来schedule()的参数以毫秒为单位。来自java documentation:
public void schedule(TimerTask任务, 长时间延迟 长期)
参数: 任务 - 要安排的任务。 延迟 - 执行任务之前的延迟(以毫秒为单位)。 period - 连续任务执行之间的时间(以毫秒为单位)。
所以尝试传递1000和2000而不是1和2。