Registriert seit: 7. Jun 2002
Ort: Eilsum
136 Beiträge
Delphi 2005 Personal
|
Re: Mein Spiel -> CPU Auslastung 100%
14. Sep 2005, 17:00
Also das mit dem Timer ist nun echt keine Lösung ^^
Denn: der Timer an sich auf einer 1er Einstellung reduziert die Maximale FPS-Zahl auf 1000 ... da kaum ein Spiel so schnell läuft bedeutet also die Timer-Einstellung von 1: Rendere so schnell du halt kannst - Wahrscheinlich die vernümpftigste Lösung und mit dme OnIdle-Event von Delphi nahezu gleichzusetzen - dieses brasucht auch immer 100% CPU-Power, weil halt so viel und so schnell gerendert wird, wie es halt gerade geht.
Das Sleep(10) bewirkt nun aber, dass nach jedme Rendern erstmal 10 Millisekunden Pause gemacht werden, bevor deine Anwendung weiterarbeitet ... eher friert sie für die Zeit ein udn der Prozie arbeitet solange an anderen Prozessen, deshlab hat er nicht 100% Last .... Aber: damit reduziert man die Maximale FPS-Zahl auf 100 (bei der Idealen Hardware, die keien Zeit zum Rendern bräuchte) ... auf langsamen Maschienen hingegen wird dieses zum Overkill ... man stelle sich das Szenario vor, das die Application mit ca 20 Frames pro Sekunde läuft ... in der Regel noch so eben akzeptabel. Nun aber bewirkt man mit dem Sleep(10), das statt 50 Ms 60 gebraucht werden für einen Frame, also die FPS-Zahl auf ca 18 sinkt ... mag nicht viel klingen, ist aber ärgerlich ^^
Also: Leute, lasst doch eure Anwendungen so schnell Rendern wie sie wollen ... und wenn ihr noch nebenher was machen wollt, denn nehmt keinen Timer oder ähnlichen Spielkram, sondern das OnIdle-Event, da immer denn nur was machen soll, wenn alle anderen Prozesse nichts zu tun haben ...
Mein neuer, 13 Teiliger Open GL - Kurs (Samples in Delphi):
www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Neu! Teil 2b: Initialisierung von OpenGL unter Kylix ist fertig!
|