Movimiento basado en el tiempo Vs ¿Movimiento basado en la velocidad de cuadros?

8

Soy nuevo en la programación de juegos y SDL, y he estado siguiendo los tutoriales SDL de Lazyfoo . Mi pregunta está relacionada con el movimiento basado en el tiempo y el movimiento basado en la velocidad de fotogramas, ¿cuál es mejor o más apropiado dependiendo de las situaciones? ¿Me podría dar un ejemplo de dónde se utilizan cada uno de estos métodos?

Otra pregunta que tengo es que, en los dos tutoriales de Motion de lazyfoo ( basados ​​en FPS y basados ​​en el tiempo ), el método basado en el tiempo mostró una animación mucho más suave, mientras que la basada en la velocidad de fotogramas tenía un poco de hipo, lo que significa que se podía ver claramente la brecha entre la ubicación anterior del punto y su posición actual cuando compara los dos programas.

Como principiante, ¿qué método debo seguir? (Todo lo que quiero es animaciones suaves).

silencio
fuente

Respuestas:

16

Lo que se muestra como "basado en FPS" existe. . . bueno, básicamente, es horrible. Está fijando la velocidad del juego al rendimiento de una computadora en particular. Si actualiza a una computadora rápida y agradable, su juego se ejecutará repentinamente en velocidad turbo, si baja a una computadora más lenta, estará trabajando en cámara lenta.

La elección real es el paso de tiempo fijo versus el paso de tiempo variable, y en ese punto me referiré a este excelente post que profundiza mucho.

ZorbaTHut
fuente
No solo las cosas se moverán rápido o lento dependiendo de la computadora que esté ejecutando, sino que todas las animaciones se moverán al mismo ritmo; lo que eso significa es que algunas animaciones se ejecutarán súper rápido, mientras que algunas se ejecutarán un poco más lento, lo que hará que parezca realmente extraño .
ShrimpCrackers
pero ¿no va a dar cuenta esto la limitación de la velocidad de fotogramas?
silencio
@ sil3nt, solo hasta que esté ejecutando a alguien con una computadora inesperadamente lenta, o hasta que comience a usar suficiente CPU para caer por debajo de su límite de velocidad de cuadros.
ZorbaTHut
Entonces, ¿el método basado en la velocidad de fotogramas está bien si la computadora en la que se ejecuta el programa puede manejar el FPS?
silencioso
@ sil3nt, sí, si puede garantizar que la computadora siempre puede manejar el FPS, y tiene una forma confiable de bloquear esa velocidad de cuadros. Estos son suficientes calificadores que dudaría en usarlo, especialmente con lo simple que es el paso de tiempo fijo.
ZorbaTHut