我需要一个Java计时器来识别我正在制作的游戏何时击中特定时间。我是定时器的新手,我想知道这段代码是否可以正常工作。我需要if语句才能工作。
Timer timer = new Timer(whatevergoeshere,this);
public void farmingTimer()
{
timer.start();
if(timer == 1000)
{
food++;
timer.restart();
timer.start();
{
}
答案 0 :(得分:1)
我找到了一个很好的例子page。 但是我认为您不应该在这种情况下使用计时器。您最好尽可能多地进行更新,并跟踪两次更新之间的时间。然后,在具有计时器的对象中,只需跟踪经过的时间即可。
public class FoodTimer
{
public int food = 0;
private double timer = 0;
public void update(double dt)
{
timer += dt;
if(timer > 1000)
{
food++;
timer = 0;
}
}
}
答案 1 :(得分:0)
我建议您阅读:How to setup a timer (Java 7)。
您基本上想要做的是创建Timer类的实例,例如:
Timer timer = new Timer();
在上述问题中,构造函数调用使用了两个参数。如果您阅读文档,则会发现这两个参数接受一个字符串(名称)和一个布尔值(isDaemon),例如
Timer(String name, boolean isDaemon)
如果您想了解有关守护程序线程的更多信息,建议您阅读这篇文章:Daemon Threads in Java。
现在,一旦您准备好实例,请执行以下操作:
timer.scheduleAtFixedRate(new TimerTask() { //scheduleAtFixedRate means execution will repeat
@Override
public void run() {
//your code here eg food++;
}
}, 0, 60*1000); // the two values at the end are delay and period - delay is 0 seconds and period states that the block will be executed every minute (both values are in milliseconds)