Falls DFYX vom richtigen Standpunkt ausgeht, nämlich, dass der erste Codeschnipsel nicht wiederholt wird, dann kommt natürlich das Problem auf, dass im Ablauf von folgendem Code:
Code (JAVA):
    		playSound();  
    		zeichneSchwarz(g);
 

500 Millisekunden vorbei gehen müssen, sonst wird GameMode nie auf 2 gesetzt.

Zitat Zitat von ~Cloud~ Beitrag anzeigen
Thread.sleep hab ich auch als erstes benutzt. Aber er hat dann immer erst den schwarzen Bildschirm gemalt und danach erst gewartet obwohl Thread-sleep VOR dem g.drawImage kam.
Sollte eigentlich klappen, wie du jetzt plötzlich auf g.drawImage kommst, ist nicht ersichtlich. Aber
Code (JAVA):
 
zeichneSchwarz(g);
Thread t = Thread.currentThread;
t.Sleep(500);
 

oder so ähnlich sollte klappen. (Und sonst gibt es immernoch die Warte-Methode die man als erstes lernt: while(System.currentTimeMillis() >= waitingStartTime + 500){})

Und falls der erste Code trotzdem mehrmals beim if vorbeikommt muss man natürlich darauf achten, dass waitingStartTime nicht jedesmal neu initialisiert wird.