Wartepause in Java?

2 Antworten

Wahrscheinlich nutzt du nicht den Event Thread.

Wenn du mit Swing, JavaFX oder AWT arbeitest gibt es immer einen Event Thread, in dem du UI Änderungen publizieren solltest. Wenn du also ausgehend von einem Ereignis 2 Sekunden warten möchtest um etwas anzuzeigen UND parallel die Spielwelt weiterlaufen soll, dann musst du mit Thread.sleep arbeiten, aber halt in einem anderen Thread.

if ist eine Bedingung. Was spricht denn gegen Thread.sleep()? Etwas Quellcode wäre sicherlich von Vorteil um das richtig bewerten zu können.


LurBanane 
Beitragsersteller
 29.12.2020, 14:37

if(won == true){

            g.setColor(Color.GREEN);

            g.drawString("Gewonnen!", Var.screenWidth / 2 - 300, 300);

            g.setColor(Color.BLACK);

            g.setFont(new Font("Cooper Black", Font.PLAIN, 150));

            g.drawString("" + playerPoints1 + ":", playerPoints2, screenWith / 2 - 110, 200);

            //Wartepause von 2 Sekunden

//Titelbildschirm wird angezeigt

won = false;

0
JanMarcel01  29.12.2020, 14:34

Das Problem ist, dass bei Thread.sleep() das gesamte Programm stoppt, er möchte, dass nur der Inhalt der if-Abfrage stoppt.

0
LurBanane 
Beitragsersteller
 29.12.2020, 14:33

Wenn ich Thread.sleep() nehme wird auch wenn es vorher passiert nichts gezeichnet. Wenn die Variable gewonnen auf true geht soll einmal mit g.drawString "Gewonnen" stehen und nach 2 Sekunden soll dann wieder der Titelbildschirm angezeigt werden.

0