Guten Tag,
ich bin gerade dabei eine Ampelsteuerung zu simulieren. Das Programm ist theoretisch fertig, jedoch wird die CPU bei der Ausführung zu 40 % ausgelastet. Ich habe eine Kreuzung als Hintergrundbild (BufferedImage) und auf diesem werden Autos auch in Form von Bildern bewegt und bei jeder Positionsänderung neu gezeichnet. Nun muss das statische Hintergrundbild eigentlich nur einmal gezeichnet werden, da es sich ja nicht ändert. Die CPU Auslastung ist dadurch sehr beeinflusst, zumal das Bild eine Größe von 900x600 Pixel hat.
1.Frage: Ist es möglich, dass das Hintergrundbild nur einmal in der paintComponent() Methode des JPanels gezeichnet wird und trotzdem das Zeichnen der Autos kein komplettes leeren des Bildschirms zur Folge hat?
2. Frage:
Ich benutze für die Darstellung der Zeichenoperationen ein JPanel. Ein JPanel wird standardmäßig passiv gerendert und doppelt gepuffert. Nun habe ich mit BufferedImage ein eigenen Buffer erstellt und rendere das Bild aktiv. Ein deutlicher Performanceunterschied ist jedoch nicht spürbar. Wie lassen sich dann ein mehrfach wiederholtes neuzeichnen von Bildern optimieren, sodass die CPU nicht so stark beansprucht wird. Trotz dessen, dass meine Anwendung mit konstanten 60 FPS läuft, ruckelt es trotzdem an einigen Stellen.
Vielen Dank!
MfG
Hauke
ich bin gerade dabei eine Ampelsteuerung zu simulieren. Das Programm ist theoretisch fertig, jedoch wird die CPU bei der Ausführung zu 40 % ausgelastet. Ich habe eine Kreuzung als Hintergrundbild (BufferedImage) und auf diesem werden Autos auch in Form von Bildern bewegt und bei jeder Positionsänderung neu gezeichnet. Nun muss das statische Hintergrundbild eigentlich nur einmal gezeichnet werden, da es sich ja nicht ändert. Die CPU Auslastung ist dadurch sehr beeinflusst, zumal das Bild eine Größe von 900x600 Pixel hat.
1.Frage: Ist es möglich, dass das Hintergrundbild nur einmal in der paintComponent() Methode des JPanels gezeichnet wird und trotzdem das Zeichnen der Autos kein komplettes leeren des Bildschirms zur Folge hat?
2. Frage:
Ich benutze für die Darstellung der Zeichenoperationen ein JPanel. Ein JPanel wird standardmäßig passiv gerendert und doppelt gepuffert. Nun habe ich mit BufferedImage ein eigenen Buffer erstellt und rendere das Bild aktiv. Ein deutlicher Performanceunterschied ist jedoch nicht spürbar. Wie lassen sich dann ein mehrfach wiederholtes neuzeichnen von Bildern optimieren, sodass die CPU nicht so stark beansprucht wird. Trotz dessen, dass meine Anwendung mit konstanten 60 FPS läuft, ruckelt es trotzdem an einigen Stellen.
Vielen Dank!
MfG
Hauke