Verfasst: 07.03.2005 16:40
Ich werds mal heute Abend auf meinem 350MHz Rechner testen. Bin ja gespannt.
Ein Tipp: Benutzt du für die FPS-Anzeige StartDrawing(): DrawText(): Stopdrawing()? Wenn ja dann hast du an dieser Stelle eine Geschwindigkeitsbremse eingebaut. Auf meinem alten Rechner merk ich das extrem. Sobald irgendwo ein Startdrawing() kommt und dann vielleicht sogar noch ein DrawText() dann gehen die FPS in den Keller. Da reicht schon ein einziges DrawText(). Erstell dir mal nen kleinen Bitmap-Font für z.B. nur Zahlen und gib damit die FPS aus oder zeichne die FPS alle 10 Sekunden in ein Array auf und speicher das Array beim Beenden in eine Datei. Du wirst einen deutlichen Anstieg der FPS bemerken, sobald du alle StartDrawings() und 2DDrawing-Befehle rausgeschmissen hast...
---------------------------
PS: Hab grade nochmal das Verhalten der 2DDrawing()-Befehle auf einem schnellen Rechner an einem einfachen Beispiel mit dem Darstellen von ein paar Sprites getestet:
Ohne 2DDrawing-Befehle:
520 FPS
Ein einfaches StartDrawing(ScreenOutput()): StopDrawing() in die Hauptschleife eingefügt:
430 FPS!!
Zusätzlich ein DrawText("x") dazwischen eingefügt:
345 FPS!!!!
Es ist echt Wahnsinn, was diese Drawing-Befehle für Geschwindigkeitbremsen sind!! Also Finger weg wenn es um die Performance geht! Von 520 auf 345 FPS mit nur einer Zeile StartDrawing(ScreenOutput()): DrawText("x"): StopDrawing() ist enorm. Das ist ein Geschwindigkeitsverlust von 33%!!! Da muss man schon sehr viele Sprites mit "DisplayTransparentSprite()" auf den Bildschirm darstellen, um einen ähnlichen Geschwindigkeitseinbruch zu erreichen....
Ein Tipp: Benutzt du für die FPS-Anzeige StartDrawing(): DrawText(): Stopdrawing()? Wenn ja dann hast du an dieser Stelle eine Geschwindigkeitsbremse eingebaut. Auf meinem alten Rechner merk ich das extrem. Sobald irgendwo ein Startdrawing() kommt und dann vielleicht sogar noch ein DrawText() dann gehen die FPS in den Keller. Da reicht schon ein einziges DrawText(). Erstell dir mal nen kleinen Bitmap-Font für z.B. nur Zahlen und gib damit die FPS aus oder zeichne die FPS alle 10 Sekunden in ein Array auf und speicher das Array beim Beenden in eine Datei. Du wirst einen deutlichen Anstieg der FPS bemerken, sobald du alle StartDrawings() und 2DDrawing-Befehle rausgeschmissen hast...
---------------------------
PS: Hab grade nochmal das Verhalten der 2DDrawing()-Befehle auf einem schnellen Rechner an einem einfachen Beispiel mit dem Darstellen von ein paar Sprites getestet:
Ohne 2DDrawing-Befehle:
520 FPS
Ein einfaches StartDrawing(ScreenOutput()): StopDrawing() in die Hauptschleife eingefügt:
430 FPS!!
Zusätzlich ein DrawText("x") dazwischen eingefügt:
345 FPS!!!!
Es ist echt Wahnsinn, was diese Drawing-Befehle für Geschwindigkeitbremsen sind!! Also Finger weg wenn es um die Performance geht! Von 520 auf 345 FPS mit nur einer Zeile StartDrawing(ScreenOutput()): DrawText("x"): StopDrawing() ist enorm. Das ist ein Geschwindigkeitsverlust von 33%!!! Da muss man schon sehr viele Sprites mit "DisplayTransparentSprite()" auf den Bildschirm darstellen, um einen ähnlichen Geschwindigkeitseinbruch zu erreichen....