SDL und Frame rate limit
-
Hi, ich bin Dummie in Mathematik und wollte bloß mal nach den rechten Dingen fragen. Folgender Codeausschnitt:
while(!quit){ new_time = std::time(0); frame_time = new_time - current; current = new_time; while(frame_time > 0){ delta = std::min((int)frame_time, wait_ticks); SDL_Delay(frame_time); frame_time -= delta; } ... surface.clear(); surface.draw(hello); surface.update(); }
Ist das richtig so? Ich bemerke vom Bild her keinen Unterschied und zugegebenermaßen verstehe ich den Code bloß zur Hälfte. Zwischen den Zeilen 2 und 4 wird die Frametime ausgerechnet. Die while-Schleife dient dazu, solange zu warten, bis
frame_time
kleiner-gleich Null ist. Soweit noch alles klar. Was ich nicht verstehe ist Zeile 7. Warum den kleinsten Wert von entwederframe_time
oderwait_ticks
? Ich kann mir irgendwie schwer was darunter vorstellen. Wie kommt man auf sowas?Ansonsten, ist die Implementierung des Framerate Limits korrekt so? Oder ist da noch etwas, das ich nicht verstanden habe? Ich muss zugeben, ich habe den gezeigten Code etwas abgetippt, zumals was in der while-Schleife passiert, habe ich nicht so recht verstanden.
Kann mir das mal wer erklären? Wär ich echt dankbar.
Liebe Grüße,
Luuu
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.