Mouvement basé sur le temps Vs Mouvement basé sur la fréquence d'images?

8

Je suis nouveau dans la programmation de jeux et SDL, et j'ai suivi les tutoriels SDL de Lazyfoo . Ma question est liée au mouvement basé sur le temps et au mouvement basé sur la fréquence d'images, ce qui est fondamentalement meilleur ou approprié selon les situations?. Pourriez-vous me donner un exemple où chacune de ces méthodes est utilisée?.

Une autre question que j'ai est que, dans les deux tutoriels Motion de lazyfoo ( basés sur FPS et basés sur le temps ), la méthode basée sur le temps a montré une animation beaucoup plus fluide tandis que celle basée sur la fréquence d'images était un peu hoquet, ce qui signifie que vous pouviez clairement voir l'écart entre l'emplacement précédent du point et sa position actuelle lorsque vous comparez les deux programmes.

En tant que débutant, à quelle méthode dois-je m'en tenir? (Tout ce que je veux, c'est des animations fluides).

silencieux
la source

Réponses:

16

Ce qui est affiché comme "basé sur FPS" existe. . . eh bien, au fond, c'est affreux. Il épingle la vitesse du jeu aux performances d'un ordinateur particulier. Si vous passez à un ordinateur rapide et agréable, votre jeu fonctionnera soudainement à la vitesse turbo, si vous rétrogradez vers un ordinateur plus lent, vous vous brouillerez en slo-mo.

Le vrai choix est un pas de temps fixe par rapport à un pas de temps variable, et à ce stade, je m'en remettrai à cet excellent article qui va en profondeur.

ZorbaTHut
la source
Non seulement les choses bougeront rapidement ou lentement en fonction de l'ordinateur sur lequel il s'exécute, mais toutes les animations se déplaceront au même rythme - ce qui signifie que certaines animations s'exécuteront très rapidement, tandis que d'autres s'exécuteront un peu plus lentement, ce qui donne un aspect vraiment étrange .
ShrimpCrackers
mais le plafonnement de la fréquence d'images ne va-t-il pas en tenir compte?
silencieux
@ sil3nt, uniquement jusqu'à ce que vous exécutiez sur quelqu'un avec un ordinateur incroyablement lent, ou jusqu'à ce que vous commenciez à utiliser suffisamment de CPU pour descendre en dessous de votre plafond de fréquence d'images.
ZorbaTHut
Alors, la méthode basée sur la fréquence d'images est correcte si l'ordinateur sur lequel le programme s'exécute peut gérer le FPS?
silencieux
@ sil3nt, oui, si vous pouvez garantir que l'ordinateur peut toujours gérer le FPS et que vous disposez d'un moyen fiable de verrouiller ce taux de rafraîchissement. C'est suffisamment de qualificatifs pour que je serais très réticent à l'utiliser, surtout avec la simplicité du pas de temps fixe.
ZorbaTHut