vitesse de déplacement d'une image pas constante
bonjour à tous
j'essaye de faire défiler des photo sur mon écran d'ordinateur.
j'ai donc essayé le code qui suit,
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
Case 5 'coin supérieur gauche
DepX = -LpicsP'largeur de l'image
DepY = -HpicsP'hauteur
deltax = ((DepX - gauche)) / Vit'vitesse déplacement ici à 800
deltay = ((DepY - supérieur)) / Vit
With Picture1'conteneur qui à reçu la photo
.Move DepX, DepY
.Visible = True
End With
Form1.BackColor = &H8000000F
Form1.Refresh
mvX = DepX
mvY = DepY
'début du déplacement
Do Until mvX >= gauche Or mvY >= supérieur
mvX = Picture1.Left - deltax
mvY = Picture1.Top - deltay
Picture1.Move mvX, mvY
cpte = cpte + 1 'compteur pour accélérer la vitesse sur la fin
If cpte = Vit Then cpte = Vit - 1
'ici réintroduction possible du calcul du delta car la valeur ne tombe _
toujours sur une valeur(je pense) de déplacement possible
'deltax = (Picture1.Left - gauche) / (Vit - cpte) 'calcule le delta en fonction de la distance restante _
'permet d'arrivée plus près du point final
'deltay = (Picture1.Top - supérieur) / (Vit - cpte)
'refresh'avec refresh l'avancée est légèrement sacadée
DoEvents
Loop
Picture1.Move gauche, supérieur'pour bien mettre la photo _
à l'endroit voulu |
mais problème le déplacement n'a jamais une vitesse "visuellement" constante! Je ne sais si cela provient de la taille des photos, bien que l'effet ne soit pas toujours identique avec des mêmes photos, ou si cela provient du Doevents incorporé dans la boucle? dont d'ailleur j'ai du mal à bien comprendre le fonctionnement (du Doevents)
est ce que quelqu'un pourrait m'expliquer ce qui se passe
merci d'avance
[/code]