[Java ME] Problem in Java - Threads und Kommunikation

privacy

Captain
Registriert
Aug. 2004
Beiträge
3.238
Huhu!

Ich bin gerade dabei ein kleines Testgame mit Java fürs Handy zu schreiben. Nun habe ich ein Problem, bzw mir ist nicht klar wie ich es lösen kann.

Es gibt eine "Spiel" Klasse, die Logik enthält. Außerdem gibt es einen "M3GCanvas" der meine Welt auf den Display rendert.

Nun hat das "Spiel" die Welt zusammengebaut und muss sie nun an den Canvas übergeben. Nun stellt sich mir folgendes Problem:
Ich muss ja die Instanz des Spiels und die Instanz des Canvas parallel laufen lassen um die Logik und Anzeige parallel zu bekommen. Jetzt stellt sich mir die Frage wie ich das am einfachsten gebacken kriege. Wie können die beiden Threads dann Daten austauschen? Ich stehe glaube ich wirklich voll auf der Leitung, aber mir ist es nicht klar.

Vielleicht könnt ihr mir helfen.

Gruß Denis
 
AW: Problem in Java - Threads und Kommunikation

über eine Instanz, die beiden bekannt ist ;)

Code:
// irgendwo am Anfang
Kommunikation k = new Kommunikation();
Logik l = new Logik(k);
Grafik g = new Grafik(k);

// in Logik
k.schreibeInfos(...);

// in Grafik
k.leseInfos();

oder über ein statisches Objekt :rolleyes:
 
AW: Problem in Java - Threads und Kommunikation

Argh ich war definitiv auf der Leitung gesessen :D. Danke ;)
 
AW: Problem in Java - Threads und Kommunikation

Bitte Markiere den Topic mit [J2ME] oder so. Ich hätte hier fast nicht reingeschaut.

Du brauchst keine 2 Klassen für die einzelnen Teile. Also nicht in dem Sinn wie du es vor hast.

Mach folgendes:
TestGameCanvas Klasse die den J2ME Canvas extendet und TestGameMain als Parent mitbekommt und alle Events an den Parent weiter leiten.
Zudem auch Runnable implementieren da der Canvas auch den Update-Thread handeln soll.
Im run einfach ne while die TestGameMain.update() und repaint() aufruft und sleept.

TestGameMain Klasse die MIDlet extendet und deinen ganzen Code beinhalten kann. u.a. auch die Events die vom Canvas her kommen: paint, update und die Key events.
Update aktualisiert die Spiel Objekte.
Paint() stellt sie dar.
 

Ähnliche Themen

Zurück
Oben