function(deltaTime) {
x = x * FACTOR; // FACTOR = 0.9
}
Cette fonction est appelée dans une boucle de jeu. Supposons d'abord qu'il fonctionne à une vitesse constante de 30 FPS, donc deltaTime
est toujours 1/30.Modification du calcul de multiplication pour utiliser le temps delta
Maintenant que le jeu est modifié, deltaTime
n'est pas toujours 1/30 mais devient variable. Comment puis-je incorporer deltaTime
dans le calcul de x
pour garder le "effet par seconde" le même?
Qu'en est-
function(deltaTime) {
x += (target - x) * FACTOR; // FACTOR = 0.2
}
Quel langage de programmation, environnement, etc? –
Pour le deuxième problème, vous utilisez une variable delta = target - x. Ensuite, la fonction de mise à jour devient delta = delta * (1 - FACTOR), que vous savez déjà résoudre. Étant donné delta, vous pouvez toujours obtenir x = target - delta. – abc