私はJavaが初めてで、練習用の小さなゲームを作成しています。
if (doAllFaceUpCardsMatch == false) {
//run pause here//
concentration.flipAllCardsFaceDown();
} else {
concentration.makeAllFaceUpCardsInvisible();
}
ここでゲームを2秒間停止してから停止します
concentration.flipAllCardsFaceDown();
どのように一時停止しますか?
次を使用できます。
Thread.sleep(2000);
または
Java.util.concurrent.TimeUnit.SECONDS.sleep(2);
これらのメソッドは両方とも、チェック済み例外であるInterruptedException
をスローすることに注意してください。したがって、メソッドでそれをキャッチするか、宣言する必要があります。
編集:例外をキャッチすると、コードは次のようになります。
if (doAllFaceUpCardsMatch == false) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
concentration.flipAllCardsFaceDown();
} else {
concentration.makeAllFaceUpCardsInvisible();
}
初心者なので、Javaに少し慣れたら、例外処理の方法を学ぶことをお勧めします。
同様の投稿をここで見つけることができます: Javaでの遅延方法
基本的に、古い投稿の内容。 Java.util.concurrent.TimeUnitを使用できます
import Java.util.concurrent.TimeUnit;
if (doAllFaceUpCardsMatch == false) {
TimeUnit.SECONDS.sleep(2);
concentration.flipAllCardsFaceDown();
} else {
concentration.makeAllFaceUpCardsInvisible();
}
ライブラリを持ち込むことなく、簡単にハックしたい人のために...
public class Timing {
public static void main(String[] args) {
int delay = 1000; // number of milliseconds to sleep
long start = System.currentTimeMillis();
while(start >= System.currentTimeMillis() - delay); // do nothing
System.out.println("Time Slept: " + Long.toString(System.currentTimeMillis() - start));
}
}
高精度の60fpsゲーミングでは、これはおそらくあなたが望むものではありませんが、おそらくいくつかはそれが便利だと思うかもしれません。
Thread.currentThread()。sleep(2000)を使用して、現在のスレッドを2秒間(2000ミリ秒)一時停止できます。 InterruptedException sの場合、これをtry/catchで囲む必要があります。