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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| Dim sprite As Image, finalSprite As Image
'sprite est limage qui se promene
' finalSprite cest limage de arrive
Private Sub MoveSprite(start As Boolean)
'start cest le premier mouvement
Static iniLeft As Integer, iniTop As Integer, endLeft As Integer, endTop As Integer
Static orizDir As Integer, vertDir As Integer, leftStep As Integer, topStep As Integer
Static firstGo As Boolean
If start Then
' variables initialiser
iniLeft = sprite.Left
iniTop = sprite.Top
endLeft = finalSprite.Left
endTop = finalSprite.Top
orizDir = Sgn(endLeft - iniLeft)
vertDir = Sgn(endTop - iniTop)
leftStep = 100 ' stap
topStep = Abs(iniTop - endTop) \ (Abs(iniLeft - endLeft) \ leftStep)
firstGo = True ' vers finalsprite
' premier mouvement
sprite.Left = sprite.Left + leftStep * orizDir
sprite.Top = sprite.Top + topStep * vertDir
' timer on
Else
' encore mouvement
sprite.Left = sprite.Left + leftStep * orizDir
sprite.Top = sprite.Top + topStep * vertDir
If firstGo Then
'si arrivé a finalsprite
If sprite.Left = endLeft Then
Timer1.Enabled = False
End If
End If
End If
End Sub
Private Sub cmd_Click()
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Set sprite = Img1
Set finalSprite = Img2
MoveSprite True
End Sub |
Partager