bon, je ne sais vraiment pas ce qui s'est passé (ça doit être opéra, j'essaies avec IE)
non surtout pas de timer.
pourquoi ? beaucoup moins souple, surtout en réseau.
Une partie de ton calcul et de ton raisonnement est bon, voici la façon dont il faut procéder:
tout d'abords, il faut utiliser la fonction "GetTickCount" qui te renvoie une valeur en milliseconde.
tu déclares trois variables:
int temps1, temps2, difference;
dans ta boucle d'affichage, la première chose à faire est de sauver la valeur de GetTickCount dans ta variable "temps1".
Ensuite tu calcules la différence entre la variable "temps2" et "temps1" :
difference = temps1 - temps2;
Si c'est la première itération de ta boucle, la valeur de la variable "difference" sera très grande étant donné que la variable "temps2" = 0 (tu peux toujours palier à ça en lui spécifiant une valeur avant de commencer ta boucle)
Ensuite tu effectues tout tes calculs et après avoir affiché ton image à l'écran (avec la fonction style "D3DDevice.Present") tu sauves la valeur de la variable "temps1" dans ta variable "temps2":
temps1 = temps2;
à la prochaine itération, la différence des deux sera le temps en milliseconde écoulé entre chaque affichage d'une image.
c'est cette différence qui va te servir de multiple pour calculer n'importe quel déplacement ou changement.
si tu veux voir une source ou cette méthode est utilisée : http://www.cppfrance.com/code.aspx?id=29053
elle est entièrement commentée et utilise opengl (mais ça ne change rien pour toi)
ciao
.:. NoRabbit .:.