
Necesitamos un Shape y un Timer.
Primero Algunas variables
-
Public a As Boolean
-
Public b As Boolean
-
Public c As Boolean
-
Public d As Boolean
-
Public q As Integer
-
Public z As Integer
-
Public y As Integer
-
Public x As Integer
-
Public t As Integer
-
Public Val As Boolean
Configuramos las teclas con las que se mueve.
-
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
-
Select Case KeyCode
-
Case vbKeyLeft
-
If b = True Then
-
Exit Sub
-
End If
-
a = True
-
b = False
-
c = False
-
d = False
-
Case vbKeyRight
-
If a = True Then
-
Exit Sub
-
End If
-
b = True
-
a = False
-
c = False
-
d = False
-
Case vbKeyDown
-
If d = True Then
-
Exit Sub
-
End If
-
c = True
-
b = False
-
a = False
-
d = False
-
Case vbKeyUp
-
If c = True Then
-
Exit Sub
-
End If
-
d = True
-
b = False
-
c = False
-
a = False
-
Case Else
-
Exit Sub
-
End Select
-
End Sub
Configuramos el movimiento
-
Private Sub Timer1_Timer()
-
If Val = True Then
-
z = q
-
Do Until q = 0
-
Shape1(q).Top = Shape1(q - 1).Top
-
Shape1(q).Left = Shape1(q - 1).Left
-
q = q - 1
-
Loop
-
q = z
-
End If
-
If a = True Then
-
Shape1(0).Left = Shape1(0).Left - 240
-
End If
-
If b = True Then
-
Shape1(0).Left = Shape1(0).Left + 240
-
End If
-
If c = True Then
-
Shape1(0).Top = Shape1(0).Top + 240
-
End If
-
If d = True Then
-
Shape1(0).Top = Shape1(0).Top - 240
-
End If
-
If Val = True Then
-
For k = 1 To q
-
If Shape1(0).Top = Shape1(k).Top And Shape1(0).Left = Shape1(k).Left Then
-
End
-
End If
-
Next
-
End If
-
If Shape1(0).Left = Shape1(t).Left And Shape1(0).Top = Shape1(t).Top Then
-
Val = True
-
t = t + 1
-
q = t
-
q = q - 1
-
Call cargar
-
End If
-
If Shape1(0).Top> (Me.ScaleHeight - 255) Or Shape1(0).Top <0 Or Shape1(0).Left> (Me.ScaleWidth - 255) Or Shape1(0).Left <0 Then
-
End
-
End If
-
End Sub
Colocamos todo en su lugar
-
Private Sub cargar()
-
Shape1(0).Width = 255
-
Shape1(0).Height = 255
-
Randomize
-
y = 1
-
x = 1
-
Do Until (y Mod 240) = 0 And y> 0 And y <(Me.ScaleHeight - 255) And (x Mod 240) = 0 And x> 0 And x <(Me.ScaleWidth - 255)
-
y = Int(Rnd() * (Me.ScaleHeight - 1) + 1)
-
x = Int(Rnd() * (Me.ScaleWidth - 1) + 1)
-
Loop
-
Load Shape1(t)
-
Shape1(t).Top = y
-
Shape1(t).Left = x
-
Shape1(t).Visible = True
-
Me.Refresh
-
End Sub
Finalmente Cargamos
-
Private Sub Form_Load()
-
t = 1
-
Call cargar
-
End Sub


Hola, oye como le haria si en lugar de que se cierre el juego al chocar con los bordes mejor mande un mensaje y vuelva a jugar el usuario????
no tenes el archivo para pasarlo???