Je suis nouveau à Java et je fais un petit jeu pour la pratique.
if (doAllFaceUpCardsMatch == false) {
//run pause here//
concentration.flipAllCardsFaceDown();
} else {
concentration.makeAllFaceUpCardsInvisible();
}
Je veux interrompre le jeu pendant deux secondes ici avant qu'il ne le fasse
concentration.flipAllCardsFaceDown();
Comment pourrais-je faire une pause?
Vous pouvez utiliser:
Thread.sleep(2000);
ou
Java.util.concurrent.TimeUnit.SECONDS.sleep(2);
Veuillez noter que ces deux méthodes lancent InterruptedException
, qui est une exception vérifiée, vous devrez donc l'attraper ou la déclarer dans la méthode.
Edit: Après avoir capturé l'exception, votre code ressemblera à ceci:
if (doAllFaceUpCardsMatch == false) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
concentration.flipAllCardsFaceDown();
} else {
concentration.makeAllFaceUpCardsInvisible();
}
Puisque vous êtes nouveau, je recommanderais d'apprendre à gérer les exceptions une fois que vous serez un peu à l'aise avec Java.
Vous pouvez trouver un article similaire ici: Comment retarder en Java?
Fondamentalement, ce qui est dit dans l'ancien poste. Vous pouvez utiliser Java.util.concurrent.TimeUnit
import Java.util.concurrent.TimeUnit;
if (doAllFaceUpCardsMatch == false) {
TimeUnit.SECONDS.sleep(2);
concentration.flipAllCardsFaceDown();
} else {
concentration.makeAllFaceUpCardsInvisible();
}
Pour ceux qui veulent juste un hack rapide sans avoir à apporter une bibliothèque ...
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));
}
}
Pour les jeux de haute précision à 60 ips, ce n'est probablement pas ce que vous voulez, mais certains pourraient peut-être le trouver utile.
Vous pouvez utiliser Thread.currentThread (). Sleep (2000) pour suspendre le thread en cours pendant 2 secondes (2000 milles secondes). Vous devez l'entourer d'un try/catch en cas de InterruptedException s.