Problem erstmal gelöst...andere Frage
-
Hi.
Ich wollte ja wissen wie ich "Dynamik" in meine Programme bringe.
Ich habe ein erste für mich "dynamisches" Programm geschrieben.[java]
class Showday{
public static void main(String args[]){int zebra=1;
long test;
int step = 0;
boolean bedingung=true;Zyklus themorning = new Zyklus();
while(themorning.howlong(step)){
if (System.currentTimeMillis() >= themorning.intervalldiff())){
themorning.setday(zebra);
themorning.showtime();
themorning.setintervall(System.currentTimeMillis());
step++;
zebra=(zebra*(-1));
}
}
}
}[/code]Wie ich es im einzelnen realisiert habe ist ja egal, weil zum vollen Verständnis bräuchtet ihr ja auch noch die andere Klasse.
Mich würde nur interessieren, wie löst man sowas generell?
Doch bestimmt nicht mit einer "while" Methode.
Wie macht man das zum Beispiel in Computerspielen wo doch ein "Spielzyklus" aus vielen Verschiedenen Bedingungen besteht?!Sollte ich unter Java vielleicht mit Threads arbeiten oder was habt ihr für Ideen?
Danke schön.
Freak
-
Hi, in Spielen hat man in der Regel wirklich eine fette Haupt-Schleife, wobei jeder Schleifen-Durchlauf einem Spiel-Frame entspricht. (Neuere Spiele benutzen zT auch Threads).
Dieses Frame-Schleifenmodell ist für Spiele gut, für normale (windowbasierte) Apps benutzt man dagegen ein Event-Basiertes Modell.
Wenn du wie du in deinem anderen Thread gefragt hast, etwas alle 5 Sekunden ablaufen lassen willst, kannst du das entweder über Multi-Threading machen (lies dir dazu mal ein Tutorial über Threads in Java durch) oder du verwendest die Swing Klasse javax.swing.Timer. Dieser Klasse kannst du einen ActionListener übergeben, dessen actionPerformed()-Methode dann immer wieder (mit einstellbarem Zeitabstand) aufgerufen wird. 2tere Möglichkeiten ist unter Swing oft die bessere , da Swing nicht threadsicher ist (kann Anzeige-Fehler geben, wenn sich Threads in die Quere kommen)
[ Dieser Beitrag wurde am 27.06.2003 um 14:14 Uhr von crass editiert. ]