jeudi 8 janvier 2015

Zeitmessung springt vorraus und funktioniert nicht!

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:

Java Code:






  1. {



  2. Thread .sleep(millisekwait); // Millsekunden



  3. }






  4. {



  5. e.printStackTrace();



  6. }





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:


Java Code:






  1. private void spieleGif(){



  2. for (int i=0;i<11 ;i++ ) { //Spielfeld unsichtbar machen



  3. for (int j=0;j<11 ;j++ ) {



  4. dieGUI.aktualisiereFeld(i,j,Color .LIGHT_GRAY,false,null);



  5. } // end of for



  6. } // end of for



  7. dieGUI.lblWuerfel.setVisible(true); //Label für die Gif sichtbar machen



  8. dieGUI.lblWuerfel.setIcon(iconWuerfel[1][0]); //Gif in das Label laden



  9. dieGUI.warten(1000); //Wartefunktion aufrufen



  10. //dieGUI.lblWuerfel.setIcon(iconWuerfel[1][1]); //Letztes Bild der Gif in das Label laden



  11. }









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





Zeitmessung springt vorraus und funktioniert nicht!

0 commentaires:

Enregistrer un commentaire