Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Mein Spiel -> CPU Auslastung 100%

  Alt 14. Sep 2005, 17:14
@Mr_T: Du hast vollkommen recht, ein sleep(10) ist absolut suboptimal - trotzdem wird ein OnIdle mit Done:=false immer 100% Prozessorlast zur folge haben.

Somit also zwei Möglichkeiten: Done:=true - es wird erst wieder gerendert, wenn sich irgendwas verändert hat. Das ist gut, wenn im Render-ereignis absolut keine Berechnungen(timebased movement etc.) vorkommen. Wenn diese also alle ausserhalb passieren, hat man die ideale frame rate und theoretisch dürfte es nicht ruckeln. Für ein kleines 3d-fenster z.B. in einem Tool sollte das reichen.

oder

Die Lösung mit dem Timer. Damit(TTimer.Interval) kann man effektiv die maximale Framerate festlegen.

Für ein Hochleistungs-3d-Spiel wird aber so gut wie immer die einfache OnIdle-mit-done:=false-lösung die einfachste und richtigste bleiben. Wiederum anders sieht es bei Laptops aus - hier sollte man immer zumindest per config-datei eine möglichkeit zur begrenzung anbieten.

Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat