Thema: Delphi Problem mit DXTimer

Einzelnen Beitrag anzeigen

Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#8

Re: Problem mit DXTimer

  Alt 29. Apr 2004, 22:24
Ganz einfach geht das. Du baust dir die Funktion ein, die 'Frames' pro Sekunde zu berechnen.
Ungefähr so:

Delphi-Quellcode:
var
StartTick: Int64;
ms_per_frame: double;
FPS: double;
Frames: Cardinal;

Bevor das Spiel startet:

StartTick := GetTickCount; //in eine globale Variable die Systemzeit, auf Millisekunden genau, reicht hier völlig Dann in der Schleife

Delphi-Quellcode:
inc(Frames); //ein 'Bild' wurde gezeichnet
if GetTickCount - StartTick >= 500 then //jede halbe Sekunde ausführen
 begin
 FPS := Frames / (GetTickCount-StartTick) * 1000; //die durchschnittlichen FPS der letzten halben Sekunde errechnen
 ms_per_frame := 1000 / FPS; //durchschnittliche Zeit pro Frame
 Frames := 0;
 StartTick := GetTickCount
 end;
Und dann machst du die Bewegungen der Gegenstände usw einfach von den FPS oder der Zeit pro Frame abhängig. Zum Beispiel in der Schleife:

position := position + Bewegungsreichweite_pro_Sekunde * ms_per_frame; Wenn du damit ein wenig experimentierst, läuft das wunderbar.

MfG
  Mit Zitat antworten Zitat