Hey Leute,
ich programmiere zur Zeit ein kleines Spiel. Klein ist relativ - es soll deutlich komplexer und größer werden.
So langsam habe ich jedoch ein Problem mit dem Rendern. Eigentlich ist es kein Problem, es ist bei mir nur wahrscheinlich unfassbar blöd gelöst.
Bei mir hat jede Kreatur, jeder Fortschrittsbalken, etc. (eben alle Objekte, die sichtbar sind) ein BufferedImage. Jedes mal, wenn z.B. von einem Fortschrittsbalken die Methode "render" aufgerufen wird, zeichnet der Fortschrittsbalken das BufferedImage neu (nach aktuellen Werten eben).
In der Klasse Gameplay werden dann sozusagen alle dieser Bilder der Objekte zusammengetragen und auf das JFrame gebracht.
Ist das aus programmtechnischer Sicht nicht eine totale Katastrophe es so gelöst zu haben?
Vor allem sieht die Klasse Gameplay natürlich dadurch total wild und durcheinander aus. Kann nicht irgendwie jedes Objekt selbst dafür sorgen - natürlich so Ressourcensparend wie möglich - gezeichnet zu werden?
Naja, eigentlich ist die frage nicht ob, sondern wie?
Ich hoffe mir kann da jemand weiterhelfen.
ich programmiere zur Zeit ein kleines Spiel. Klein ist relativ - es soll deutlich komplexer und größer werden.
So langsam habe ich jedoch ein Problem mit dem Rendern. Eigentlich ist es kein Problem, es ist bei mir nur wahrscheinlich unfassbar blöd gelöst.
Bei mir hat jede Kreatur, jeder Fortschrittsbalken, etc. (eben alle Objekte, die sichtbar sind) ein BufferedImage. Jedes mal, wenn z.B. von einem Fortschrittsbalken die Methode "render" aufgerufen wird, zeichnet der Fortschrittsbalken das BufferedImage neu (nach aktuellen Werten eben).
In der Klasse Gameplay werden dann sozusagen alle dieser Bilder der Objekte zusammengetragen und auf das JFrame gebracht.
Ist das aus programmtechnischer Sicht nicht eine totale Katastrophe es so gelöst zu haben?
Vor allem sieht die Klasse Gameplay natürlich dadurch total wild und durcheinander aus. Kann nicht irgendwie jedes Objekt selbst dafür sorgen - natürlich so Ressourcensparend wie möglich - gezeichnet zu werden?
Naja, eigentlich ist die frage nicht ob, sondern wie?
Ich hoffe mir kann da jemand weiterhelfen.