Hallo Liebe Community,
Ich hänge Momentan an folgendem Problem:
Als Schulprojekt sollen mein Gruppenpartner und ich ein "Mensch ärgere dich nicht" Spiel programmieren, welches mit in die Abi-Note fließen wird. Das Spiel steht soweit und ist voll spielbar. Um es grafisch etwas besser zu gestallten, dachten wir uns beim Würfeln eine Gif über ein Label einzufügen. Da uns keine Möglichkeit eingefallen ist die Gif auf dem letzten Frame zu stoppen, dachten wir uns, nach einer gewissen Zeit das letzte Bild, extra auf das Label zu laden und somit die Gif praktisch überspielen. Realisieren wollten wir dieses Abwarten der gewissen Zeit durch eine:
in einer externen Methode.
Gleiches versuchten wir über eine Rechnung mit System.currentTimeMillis().
Hier der gesamte Quelltext für unsere Lösung mit der Gif:
Das Problem ist nun, dass das Programm zuerst die warte aufruft, was durch einfrieren sichtbar wird (was nebenbei ebenso wenig sein soll) und erst danach die Gif lädt :bahnhof: .
Wie schaffen wir es die Gif aufzurufen, dann nebenher die Zeit zuzählen, ohne das Programm einzufrieren, um danach das letzte Bild laden zu können.
Vielen Dank im Voraus!
MfG SombraOscuro
Ich hänge Momentan an folgendem Problem:
Als Schulprojekt sollen mein Gruppenpartner und ich ein "Mensch ärgere dich nicht" Spiel programmieren, welches mit in die Abi-Note fließen wird. Das Spiel steht soweit und ist voll spielbar. Um es grafisch etwas besser zu gestallten, dachten wir uns beim Würfeln eine Gif über ein Label einzufügen. Da uns keine Möglichkeit eingefallen ist die Gif auf dem letzten Frame zu stoppen, dachten wir uns, nach einer gewissen Zeit das letzte Bild, extra auf das Label zu laden und somit die Gif praktisch überspielen. Realisieren wollten wir dieses Abwarten der gewissen Zeit durch eine:
Java:
{
Thread.sleep(millisekwait); // Millsekunden
}
catch (InterruptedException e)
{
e.printStackTrace();
}
Gleiches versuchten wir über eine Rechnung mit System.currentTimeMillis().
Hier der gesamte Quelltext für unsere Lösung mit der Gif:
Java:
private void spieleGif(){
for (int i=0;i<11 ;i++ ) { //Spielfeld unsichtbar machen
for (int j=0;j<11 ;j++ ) {
dieGUI.aktualisiereFeld(i,j,Color.LIGHT_GRAY,false,null);
} // end of for
} // end of for
dieGUI.lblWuerfel.setVisible(true); //Label für die Gif sichtbar machen
dieGUI.lblWuerfel.setIcon(iconWuerfel[1][0]); //Gif in das Label laden
dieGUI.warten(1000); //Wartefunktion aufrufen
//dieGUI.lblWuerfel.setIcon(iconWuerfel[1][1]); //Letztes Bild der Gif in das Label laden
}
Das Problem ist nun, dass das Programm zuerst die warte aufruft, was durch einfrieren sichtbar wird (was nebenbei ebenso wenig sein soll) und erst danach die Gif lädt :bahnhof: .
Wie schaffen wir es die Gif aufzurufen, dann nebenher die Zeit zuzählen, ohne das Programm einzufrieren, um danach das letzte Bild laden zu können.
Vielen Dank im Voraus!
MfG SombraOscuro