First I would drop your variable Indo
. In this case, I would use a Enum
:
Enum Movimento
Cima
Baixo
Esquerda
Direita
End Enum
And would declare a variable called mov
:
Dim mov as Movimento
In this case, the Sub
would have to have, instead of a If
, a Select Case
:
Select Case mov
Case Movimento.Cima
Picture1.Left = Picture1.Top - 10
'Se bateu em cima, vai pra esquerda
If Picture1.Top >= ScaleHeight - Picture1.Height Then
mov = Movimento.Esquerda
Picture1.Top = ScaleHeight - Picture1.Height
Exit Do
End If
Case Movimento.Baixo
Picture1.Left = Picture1.Top + 10
'Se bateu em cima, vai pra esquerda
If Picture1.Top >= ScaleHeight - Picture1.Height Then
mov = Movimento.Direita
Picture1.Top = ScaleHeight - Picture1.Height
Exit Do
End If
Case Movimento.Esquerda
Picture1.Left = Picture1.Left + 10
'Se bateu no lado direito, vai pra baixo
If Picture1.Left >= ScaleWidth - Picture1.Width Then
mov = Movimento.Baixo
Picture1.Left = ScaleWidth - Picture1.Width
Exit Do
End If
Case Else ' Ou seja, Movimento.Direita
Picture1.Left = Picture1.Left - 10
'Se bateu no lado esquero, sobe.
If Picture1.Left <= 0 Then
mov = Movimento.Cima
Picture1.Left = 0
Exit Do
End If
End Select
This code will certainly need some adjustment, but it has the general idea.