Bonjour à tous,
j'essai de développer un petit jeu de plateforme mais je me confronte à problème délicat. J'ai programmé rapidement un saut pour mon personnage et là c'est le drame. En effet suivant le fps de la machine, le personnage ne saut pas à la même hauteur. (J'utilise fraps pour forcer mon fps à une certaine valeur). Pourtant mon code utilise bien le temps réel et non le temps machine. A chaque process, je calcule le temps dt qui s'est écoulé depuis le dernier process et je fais rentrer ce dt dans le calcul de mon saut. Ainsi s'il s'est écoulé une seconde depuis le dernier process le dt vaudra 1 alors qu'il s'est écoulé 0.1 seconde, il vaudra 0.1. Du coup le résultat est censé être le même entre un pc qui fait un seul process en une seconde et un autre pc qui fait 10 process en une seconde. Or je vois bien à l'écran que mon personnage ne saute pas du tout à la même hauteur si je change le fps.

Le pseudo code du process de ce saut ressemble à ceci

Code :
1
2
3
4
5
6
7
8
9
 
quand j'appuie sur saut :
Impulse = 4.0
 
toujours:
Impulse  -= dt
 
toujours:
objet.y += Impulse * dt