ciao a tutti, sto cercando di fare un gioco con vb dove chi clicca per primo, dopo il segnale (un picture box che diventa verde, dopo un numero random di tempo trascorso), vince.
codice:
Public Class Form1
Dim a As Integer
Dim b As Integer = 0
Dim p1 As Boolean = False
Dim p2 As Boolean = False
Dim v As Boolean = False
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a1 As New System.Random
a = a1.Next(3, 9)
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
b += 1
If b = a Then
PictureBox3.BackColor = Color.LawnGreen
v = True
End If
End Sub
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
'payer 1
If e.KeyCode = Keys.Left Then
'se è partito
If v = True Then
'se è attivato l'altro
If p1 = True Then
' se non è attivato l'altro
ElseIf p1 = False Then
p2 = True
PictureBox1.BackColor = Color.LawnGreen
End If
'se non è partito
ElseIf v = False Then
Timer1.Stop()
PictureBox3.BackColor = Color.Silver
Label1.Text = "FALSA PARTENZA"
a = 0
b = 0
End If
'player 2
ElseIf e.KeyCode = Keys.Right Then
'se è partito
If v = True Then
'se l'altro è attivato
If p2 = True Then
'se non è attivato l'altro
ElseIf p2 = False Then
p1 = True
PictureBox2.BackColor = Color.LawnGreen
End If
'se non è partito
ElseIf v = False Then
Timer1.Stop()
PictureBox3.BackColor = Color.Silver
Label1.Text = "FALSA PARTENZA"
a = 0
b = 0
End If
End If
End Sub
End Class
questo è il programma, funziona fino a far diventare verde il picturebox3 , dopo, indipendentemente da che pulsante viene premuto e quando, non succede più niente. non vorrei aver sbagliato a scrivere questa parte:
codice:
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.Left Then
'comandi
end if
comunque so quasi per certo che l'errore sta qua:
codice:
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
'payer 1
If e.KeyCode = Keys.Left Then
'se è partito
If v = True Then
'se è attivato l'altro
If p1 = True Then
' se non è attivato l'altro
ElseIf p1 = False Then
p2 = True
PictureBox1.BackColor = Color.LawnGreen
End If
'se non è partito
ElseIf v = False Then
Timer1.Stop()
PictureBox3.BackColor = Color.Silver
Label1.Text = "FALSA PARTENZA"
a = 0
b = 0
End If
'player 2
ElseIf e.KeyCode = Keys.Right Then
'se è partito
If v = True Then
'se l'altro è attivato
If p2 = True Then
'se non è attivato l'altro
ElseIf p2 = False Then
p1 = True
PictureBox2.BackColor = Color.LawnGreen
End If
'se non è partito
ElseIf v = False Then
Timer1.Stop()
PictureBox3.BackColor = Color.Silver
Label1.Text = "FALSA PARTENZA"
a = 0
b = 0
End If
End If
End Sub
consigli ?
più di così non so che dire