Ciao, il codice di seguito è parte di una serie di giochini che stavo facendo e non più finito...
In pratica c' è un button (target) dentro un panel che si muove con movimenti diciamo "casuali" e lo scopo è cliccarlo nel limite di tempo, con il trascorrere del tempo il movimento del button rallenta, se si passa con il mouse sul button_target la sua direzione cambia.
Ci vuole una form con tre timer, un panel con dentro un button (target), due button (start e stop), un CheckBox (pausa) con apparence=button.
Il codice:
Public Class Form1
Dim contatore As Integer
Dim limite_tempo As Integer
Dim limite_basso As Integer
Dim limite_destro As Integer
Dim su_giu As String
Dim des_sin As String
Dim rnd As New Random
Dim x As Integer
Dim y As Integer
Dim reset_timer1 As Integer
Private Sub Form1_Load() Handles Me.Load
reset_timer1 = 5
Button_target.Hide()
su_giu = "giu"
des_sin = "sin"
Timer1.Interval = reset_timer1
Timer2.Interval = 200
Timer3.Interval = 1000
limite_tempo = 20
End Sub
Private Sub Timer1_tick() Handles Timer1.Tick
If Button_target.Top <= 0 Then
su_giu = "giu"
x = rnd.Next(3, 10)
y = rnd.Next(3, 10)
End If
If Button_target.Top >= limite_basso Then
su_giu = "su"
x = rnd.Next(3, 10)
y = rnd.Next(3, 10)
End If
If Button_target.Left <= 0 Then
des_sin = "des"
x = rnd.Next(3, 10)
y = rnd.Next(3, 10)
End If
If Button_target.Left >= limite_destro Then
des_sin = "sin"
x = rnd.Next(3, 10)
y = rnd.Next(3, 10)
End If
If su_giu = "giu" Then
Button_target.Top = Button_target.Top + x
End If
If su_giu = "su" Then
Button_target.Top = Button_target.Top - x
End If
If des_sin = "des" Then
Button_target.Left = Button_target.Left + y
End If
If des_sin = "sin" Then
Button_target.Left = Button_target.Left - y
End If
End Sub
Private Sub Timer2_Tick() Handles Timer2.Tick
x = rnd.Next(3, 10)
y = rnd.Next(3, 10)
End Sub
Private Sub Timer3_Tick() Handles Timer3.Tick
contatore = contatore + 1
If contatore = limite_tempo Then
Button_target.Hide()
Timer1.Stop()
Timer2.Stop()
Timer3.Stop()
MsgBox("you fail")
Else
Timer1.Interval = Timer1.Interval + 3
End If
End Sub
Private Sub Button_start_Click() Handles Button_start.Click
x = rnd.Next(0, 10)
y = rnd.Next(0, 10)
Timer1.Interval = reset_timer1
contatore = 0
limite_basso = Panel1.Height - Button_target.Height
limite_destro = Panel1.Width - Button_target.Width
Timer1.Start()
Timer2.Start()
Timer3.Start()
Button_target.Show()
End Sub
Private Sub Button_stop_Click() Handles Button_stop.Click
Button_target.Hide()
Timer1.Stop()
Timer2.Stop()
Timer3.Stop()
End Sub
Private Sub CheckBox_pausa_CheckedChanged() Handles CheckBox_pausa.CheckedChanged
If CheckBox_pausa.Checked = True Then
Button_target.Hide()
Timer1.Stop()
Timer2.Stop()
Timer3.Stop()
End If
If CheckBox_pausa.Checked = False Then
Button_target.Show()
Timer1.Start()
Timer2.Start()
Timer3.Start()
End If
End Sub
Private Sub Button_target_Click() Handles Button_target.Click
Timer1.Stop()
Timer2.Stop()
Timer3.Stop()
Button_target.Hide()
MsgBox("bravo, tempo impiegato: " & contatore & " secondi.")
End Sub
Private Sub Button_target_MouseEnter() Handles Button_target.MouseEnter
x = 20
y = 20
End Sub
End Class
Vedi tu se può esserti utile....