2016-08-31 15 views
-4

少しゲームを作ろうとしていますが、コードに助けが必要です。 私はそれはあなたが基本的に毎分を実行するスケジューラを必要とする0Javaで1分ごとに整数を減らす

// i want this to decrease by one every minute 
int Food = 10; 
+0

バックグラウンドスレッドとスリープコールが必要です。いくつかのコードを生成しようとすると、私はそれを手伝ってくれるでしょう。 – slambeth

+0

スレッドを作成して60000ミリ秒間スリープ状態にする...詳細については、この[site](http://www.javatpoint.com/sleep()-method)を参照してください。 –

答えて

0

になるまで、毎分数を減少させるタイマーを作りたいです。スケジューラーを実装するには、java.util.TimerTaskを拡張するクラスを作成します。今

https://docs.oracle.com/javase/7/docs/api/java/util/TimerTask.html

class YourJob extends TimerTask{ 

public void run(){ 
//code which you want to execute every minute 
} 

} 

、あなたはこのタイマーを初期化して登録する必要があります。あなたはjava.util.Timerクラスのこの使用してスケジュール()メソッド

https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html

class Application { 

    public static void main(String[] args) { 
    Timer timer new Timer(); 
    Calendar date = Calendar.getInstance(); 
    date.set(
     Calendar.DAY_OF_WEEK, 
     Calendar.SUNDAY 
    ); 
    date.set(Calendar.HOUR, 0); 
    date.set(Calendar.MINUTE, 0); 
    date.set(Calendar.SECOND, 0); 
    date.set(Calendar.MILLISECOND, 0); 
    // Schedule to run every Sunday in midnight 
    timer.schedule(
     new YourJob(), //your job class, 
     1000*60 //delay in milliseconds 
    ); 
    } 
} 
0

を行うことができ、これを試してみてください。このsiteで利用可能なコードを編集しました。これは単にスレッドが60000ミリ秒間スリープした後、カウンタの値を減らします(あなたの場合はFood)。スレッドの詳細については、siteを参照してください。スリープ方法については、thisを参照してください。

class TestSleepMethod1 extends Thread 
{ 
    public void run() 
    { 
     int Food = 10; //Initial value 
     for(int i=Food;i>0;i--)//Decrementing till it becomes 0 
     { 
      try 
      { 
       Thread.sleep(60000); //Time is in miliseconds here so for your code its 60000 
      } 
      catch(InterruptedException e) 
      { 
       System.out.println(e); 
      } 
      System.out.println(i); //Printing value of i in each execution of the loop 
     } 
    } 

    public static void main(String args[]) 
    { 
     TestSleepMethod1 t1=new TestSleepMethod1();  
     t1.start();  
    } 
} 
関連する問題