Java Timer For Game for Food System

时间:2019-02-06 16:23:06

标签: java timer

我需要一个Java计时器来识别我正在制作的游戏何时击中特定时间。我是定时器的新手,我想知道这段代码是否可以正常工作。我需要if语句才能工作。

Timer timer = new Timer(whatevergoeshere,this);
public void farmingTimer()
{
     timer.start();
     if(timer == 1000)
     {
          food++;
          timer.restart();
          timer.start();
     {
}

2 个答案:

答案 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)