Zeitbasierte Bewegung Vs Bildratenbasierte Bewegung?

8

Ich bin neu in der Spielprogrammierung und in SDL und habe die SDL-Tutorials von Lazyfoo befolgt . Meine Frage bezieht sich auf zeitbasierte Bewegung und bildratenbasierte Bewegung, die im Grunde genommen je nach Situation besser oder angemessen ist . Können Sie mir ein Beispiel geben, in dem jede dieser Methoden verwendet wird?

Eine andere Frage, die ich habe, ist, dass in den beiden Motion-Tutorials von lazyfoo ( FPS-basiert und zeitbasiert ) die zeitbasierte Methode eine viel flüssigere Animation zeigte, während die auf der Framerate basierende Methode ein wenig Schluckauf war, was bedeutet, dass Sie die Lücke zwischen dem vorherigen Ort deutlich sehen konnten des Punktes und seiner aktuellen Position, wenn Sie die beiden Programme vergleichen.

An welche Methode sollte ich mich als Anfänger halten? (Ich möchte nur flüssige Animationen).

Leise
quelle

Antworten:

16

Was dort als "FPS-basiert" angezeigt wird, gibt es. . . Nun, im Grunde ist es schrecklich. Die Geschwindigkeit des Spiels hängt von der Leistung eines bestimmten Computers ab. Wenn Sie auf einen schönen schnellen Computer upgraden, läuft Ihr Spiel plötzlich mit Turbo-Geschwindigkeit. Wenn Sie auf einen langsameren Computer downgraden, werden Sie in Zeitlupe herumschleifen.

Die wirkliche Wahl ist ein fester Zeitschritt gegenüber einem variablen Zeitschritt, und an diesem Punkt werde ich auf diesen ausgezeichneten Beitrag zurückgreifen, der in die Tiefe geht.

ZorbaTHut
quelle
Je nachdem, auf welchem ​​Computer sie ausgeführt werden, bewegen sich die Dinge nicht nur schnell oder langsam, sondern alle Animationen bewegen sich mit der gleichen Geschwindigkeit. Dies bedeutet, dass einige Animationen sehr schnell ausgeführt werden, während andere etwas langsamer ausgeführt werden, wodurch sie wirklich seltsam aussehen .
ShrimpCrackers
Aber wird die Begrenzung der Bildrate dies nicht berücksichtigen?
Schweigen
@ sil3nt, nur bis Sie auf jemandem mit einem unerwartet langsamen Computer laufen oder bis Sie genug CPU verwenden, um unter Ihre Framerate-Obergrenze zu fallen.
ZorbaTHut
Die auf der Bildrate basierende Methode ist also in Ordnung, wenn der Computer, auf dem das Programm ausgeführt wird, die FPS verarbeiten kann?
Stille
@ sil3nt, ja, wenn Sie garantieren können, dass der Computer immer mit den FPS umgehen kann, und Sie eine zuverlässige Möglichkeit haben, diese Framerate zu speichern. Dies sind genug Qualifikationsmerkmale, die ich nur sehr ungern verwenden würde, insbesondere wenn man bedenkt, wie einfach ein fester Zeitschritt ist.
ZorbaTHut