J'ai vu un certain nombre de tutoriels et de livres sur le jeu 2D où la position précédente d'un objet était stockée dans un état au lieu d'un vecteur de vitesse. La vitesse est ensuite calculée pour chaque image comme une différence entre les positions.
Quels sont les avantages de cette méthode?
Réponses:
Sans connaître exactement les tutoriels ou livres que vous avez lus, voici ce que je peux vous dire.
Pour être plus précis en termes de définition physique: la direction du vecteur est calculée comme la différence entre la position actuelle et la dernière position. La vitesse du vecteur est égale à celle divisée par le temps écoulé lors du passage d'une position à l'autre. Voir: http://www.physicsclassroom.com/class/1DKin/Lesson-1/Speed-and-Velocity
Cependant, lorsque le temps écoulé est considéré comme la "1 image" générique, c'est-à-dire de la dernière image au courant, alors la vitesse du vecteur et la direction du vecteur deviennent les mêmes. En pseudo-code:
Donc, en général, la principale raison pour stocker la position dans la dernière image et obtenir la position dans l'image actuelle est que cela peut être soit le seul moyen soit le moyen le moins cher de connaître la direction mise à jour (et donc la vitesse mise à jour), c'est-à-dire la direction du mouvement dans l'image courante.
Supposons que vous stockiez la direction (ou même la vitesse) dans une image donnée. Dans l'image suivante, la seule façon de savoir si la direction (ou même la vitesse) a changé est de la recalculer. La raison étant que la direction précédente ou la vitesse précédente ne vous permettent pas de connaître la direction actuelle ou la vitesse actuelle au cas où le mouvement changerait d'une image à la suivante.
Maintenant, en tenant compte des tutoriels que vous avez mentionnés dans le commentaire de votre propre question, cela devient encore plus clair. Dans l'un des tutoriels, les auteurs disent que:
Ainsi, comme vous pouvez le voir, le stockage de la position de la dernière image permet, comme je l'ai dit ci-dessus, le calcul mis à jour de la vitesse dans l'image actuelle lorsque l'objet (dans le tutoriel, c'est une particule) change de position. Si vous n'avez enregistré que la direction ou la vélocité dans la dernière image, vous ne pourrez pas la mettre à jour aussi facilement si la position passe de l'image précédente à l'image actuelle. Par conséquent, comme indiqué également dans l'autre didacticiel auquel vous avez lié, l'enregistrement de la position précédente permet une mise à jour automatique de la vitesse lorsque les positions changent.
la source