Hallo,
Ich programmiere gerade ein 2D-Spiel, musste aber feststellen das die CPU-Auslastung schon jetzt sehr hoch ist (50% bei einem Athlon2500+). Dabei wird momentan nur ein Hintergrundbild, 2 Flugzeuge und die Geschosse der 2 Flugzeuge gezeichnet.
Alles besteht aus Bildern, sowohl das Flugzeug als auch die Geschosse.
Das Spiel wird von 2 Spielern gespielt, desshalb mit Splitscreen.
Das Spielfeld ist größer als ein Bildschirm, d.h. der Bildausschnitt scrollt mit.
Realisiert ist das momentan so das ich ein JSplitPane in mein Frame lege und dort dann 2 Panels reinstecke.
Das erste Panel zeigt den Bereich um das Flugzeug von Spieler 1, das zweite Panel den Bereich um das Flugzeug von Spieler 2.
Hier mal ein Bild:
Bild1
Später sollen da noch mehr Objekte hinzukommen, Flak-Feuer, mehr Flugzeuge etc., es soll auch noch eine KI rein die die Flaks und Flugzeuge ggf. steuert.
Ich möchte nun also die Performance verbessern und hab hier im Forum gelesen das man besser BufferStrategy nimmt statt dem standard DoubleBuffering das Swing macht.
Nur weiß ich leider nicht wie ich das realisieren soll, weil ich ja dann nur ein Graphics-Objekt vom ganzen Bildschirm habe und nicht mehr für jedes Panel ein Graphics-Objekt
Ich hab versucht die paintComponent Methoden direkt mit paintComponent(strategy.getDrawGraphics()) aufzurufen
=> zuerst malt die paintComponent von Panel1 den Bildschirm voll, dann die paintComponent von Panel2.
=> nur Panel2 ist sichtbar
Wie bekomme ich es nun hin das ich den Splitscreen behalte?
mfg
Christian
Ich programmiere gerade ein 2D-Spiel, musste aber feststellen das die CPU-Auslastung schon jetzt sehr hoch ist (50% bei einem Athlon2500+). Dabei wird momentan nur ein Hintergrundbild, 2 Flugzeuge und die Geschosse der 2 Flugzeuge gezeichnet.
Alles besteht aus Bildern, sowohl das Flugzeug als auch die Geschosse.
Das Spiel wird von 2 Spielern gespielt, desshalb mit Splitscreen.
Das Spielfeld ist größer als ein Bildschirm, d.h. der Bildausschnitt scrollt mit.
Realisiert ist das momentan so das ich ein JSplitPane in mein Frame lege und dort dann 2 Panels reinstecke.
Das erste Panel zeigt den Bereich um das Flugzeug von Spieler 1, das zweite Panel den Bereich um das Flugzeug von Spieler 2.
Hier mal ein Bild:
Bild1
Später sollen da noch mehr Objekte hinzukommen, Flak-Feuer, mehr Flugzeuge etc., es soll auch noch eine KI rein die die Flaks und Flugzeuge ggf. steuert.
Ich möchte nun also die Performance verbessern und hab hier im Forum gelesen das man besser BufferStrategy nimmt statt dem standard DoubleBuffering das Swing macht.
Nur weiß ich leider nicht wie ich das realisieren soll, weil ich ja dann nur ein Graphics-Objekt vom ganzen Bildschirm habe und nicht mehr für jedes Panel ein Graphics-Objekt
Ich hab versucht die paintComponent Methoden direkt mit paintComponent(strategy.getDrawGraphics()) aufzurufen
=> zuerst malt die paintComponent von Panel1 den Bildschirm voll, dann die paintComponent von Panel2.
=> nur Panel2 ist sichtbar
Wie bekomme ich es nun hin das ich den Splitscreen behalte?
mfg
Christian