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.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: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
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 If e.KeyCode = Keys.Left Then 'comandi end if
consigli ?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
più di così non so che dire![]()


Rispondi quotando
