Moin,
ich bin dabei ein kleines 2D-Spiel zu schreiben und würde dabei später gerne auch eine Art von Karte verwenden. Nur dass diese wahrscheinlich nicht aus kleinen Tiles, sodnern aus recht großen Bildern bestehen wird...
Jetzt hab ich aber schon bei einem unbeweglichen Hintergrundbild eine Prozessorauslastung von 100%. Ich rufe dabei alle 10 Millisekunden repaint() für mein JPanel auf. Der Code in paintComponent sieht so aus:
Wenn ich das Hintergrundbild weglasse sorgt alles andere (darunter das zeichnen von einzeller.drawObject(g)) für eine Auslastung von nur 15%.
Jetzt frage ich mich, wie das kommt? Mein PC schafft Spiele wie "Der Herr der Ringe - Die Schlacht um Mittelerde 2" mit guter Grafikeinstellung, hat aber bei einem einfachen Hintergrundbild eine 100% Auslastung... (Allerdings hab ich das Auslastungsproblem in einem Prozessorkern auch schon bei einigen Flash-Werbungen gehabt...)
Als Lösung habe ich überlegt, den Hintergrund des JPanel durchsichtig zu machen und das Hintergrundbild in ein Panel darunterzuzeichnen und das halt nur einmal, aber wenn ich das Bild später bewegen will, bringt das natürlich auch nichts mehr...
Weiß jemand vllt wie man das Problem lösen kann? :bahnhof:
ich bin dabei ein kleines 2D-Spiel zu schreiben und würde dabei später gerne auch eine Art von Karte verwenden. Nur dass diese wahrscheinlich nicht aus kleinen Tiles, sodnern aus recht großen Bildern bestehen wird...
Jetzt hab ich aber schon bei einem unbeweglichen Hintergrundbild eine Prozessorauslastung von 100%. Ich rufe dabei alle 10 Millisekunden repaint() für mein JPanel auf. Der Code in paintComponent sieht so aus:
Code:
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
//setBackground(new Color(255, 255, 0));
g.drawImage(background[0], 0, 0, this);
einzeller.drawObject(g);
} //Ende paintComponent()
Wenn ich das Hintergrundbild weglasse sorgt alles andere (darunter das zeichnen von einzeller.drawObject(g)) für eine Auslastung von nur 15%.
Jetzt frage ich mich, wie das kommt? Mein PC schafft Spiele wie "Der Herr der Ringe - Die Schlacht um Mittelerde 2" mit guter Grafikeinstellung, hat aber bei einem einfachen Hintergrundbild eine 100% Auslastung... (Allerdings hab ich das Auslastungsproblem in einem Prozessorkern auch schon bei einigen Flash-Werbungen gehabt...)
Als Lösung habe ich überlegt, den Hintergrund des JPanel durchsichtig zu machen und das Hintergrundbild in ein Panel darunterzuzeichnen und das halt nur einmal, aber wenn ich das Bild später bewegen will, bringt das natürlich auch nichts mehr...
Weiß jemand vllt wie man das Problem lösen kann? :bahnhof: