Einzelnen Beitrag anzeigen

karlkoch

Registriert seit: 26. Feb 2006
Ort: Leipzig
30 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Timed Movement - Beste Methode?

  Alt 22. Feb 2008, 01:14
Dein Ansatz ist schon korrekt. Du misst die Zeit zwischen zwei Frames und multiplizierst diesen Wert mit all deinen Bewegungen, also z.B.

Objekt.x := Objekt.x + 23*FrameTime;

Wenn du mehr Genauigkeit wünschst dann nimm den High Performance Counter. Pseudocode:

Delphi-Quellcode:
var
  CounterAvailable: Boolean;
  Frequency: Int64;

CounterAvailable := QueryPerformanceFrequency(Frequency);

// ...

QueryPerformanceCounter(Start);

// Frame

QueryPerformanceCounter(Ende);

FrameTime := (Ende - Start) / Frequency;
Damit erhälst du dann am Ende eine Frametime in Sekunden.

Diese Methode verwendet so ziemlich jedes Spiel.

karlkoch
  Mit Zitat antworten Zitat