Contador en visual basic 6.0
Tengo un juego de dados que cada vez que apretó un botón con la ayuda de un timer me pone en funcionamiento un dado y randomiza solo los numero y en un momento se detiene pero antes ya detecta el numero que va salir y si es 1 ejemplo muestra la imagen que pertenece a ese numero.
El tema es que quiero cada vez que el numero generado si sale 1 ejemplo me cree un contador de esa imagen de ese numero y me muestre en una label ej si sale una imagen con el numero 1 contador igual 1, si al apretar el botón sale otra vez en el dado el 1 contador 2 y así siempre que salga el numero ese con esa imagen del dado me sume el contador, el tema es que no logro hacer eso. Les muestro el código.
Dim cda As Integer 'contador personal del dado
Dim cda2 As Integer
Dim numdado As Integer 'numero que que saldrá en el dado
Dim numdado2 As Integer
Dim trmlisto As Integer 'Valdra uno cuando la animacion se encuentre con el numero buscado por primera vez
Dim trmlisto2 As Integer
Private Sub cmdLanzarDado_Click()
Randomize
numdado = Int(Rnd * 6) + 1 'generamos un numero aleatorio de 1-6
numdado2 = Int(Rnd * 6) + 1 'generamos un numero aleatorio de 1-6
lblNum = numdado 'mostramos el numero generado en el label
lblNum2 = numdado2 'mostramos el numero generado en el label2
trmlisto = 0 'inicializamos la flag
tmrdadoanim.Enabled = True 'activamos el timer de animacion
trmlisto2 = 0 'inicializamos la flag2
tmrdadoanim2. Enabled = True 'activamos el timer de animacion2
End Sub
Private Sub tmrdadoanim_Timer()
cda = cda + 1
If cda > 31 Then cda = 1 'cuando llega a 31 (imagen 31) regresa de nuevo a la 1
If cda = dibdado(numdado) Then 'cuando coincide el dibujo del numero del dado con el numero que queremos que aparezca en el dado
'tmrdadoanim.Enabled = False 'Si queremos que no de tanta vuelta, quitamos el comment de esta linea y borramos las siguientes dos
If trmlisto = 1 Then tmrdadoanim.Enabled = False 'si la flag estaba activada, apagamos el timer
trmlisto = 1 'activamos la flag
End If
pctDado.Picture = LoadPicture(App.Path & "/dado/" & cda & ".jpg", , vbBlack) 'cargamos la imagen respectiva
End Sub
Y en esta función esta el tema si numdado es 1 que me sume el contador pero siempre me lo pone el 0
'devuelve el nombre del dibujo que contiene el numero del dado
Function dibdado(numd As Integer) As Integer
Dim Cont As Integer
Dim Cont2 As Integer
Dim col As Collection
Dim I As Long
Set col = New Collection
Select Case numd
Case 1: dibdado = 15
Case 2: dibdado = 19
Case 3: dibdado = 7
Case 4: dibdado = 23
Case 5: dibdado = 27
Case 6: dibdado = 1
End Select
If numdado = 1 Then
Cont = Cont + 1
AtaqueLb.Caption = Cont
End If
If numdado = 2 Then
Cont = Cont + 1
DefensaLb.Caption = Cont
End If
If numdado = 3 Then
Cont = Cont + 1
MovimientoLb.Caption = Cont
End If
If numdado = 4 Then
Cont = Cont + 1
MagiaLb.Caption = Cont
End If
If numdado = 5 Then
Cont = Cont + 1
InvocarLb.Caption = Cont
End If
If numdado = 6 Then
Cont = Cont + 1
InvocarLb.Caption = Cont
End If
End Function
El tema es que quiero cada vez que el numero generado si sale 1 ejemplo me cree un contador de esa imagen de ese numero y me muestre en una label ej si sale una imagen con el numero 1 contador igual 1, si al apretar el botón sale otra vez en el dado el 1 contador 2 y así siempre que salga el numero ese con esa imagen del dado me sume el contador, el tema es que no logro hacer eso. Les muestro el código.
Dim cda As Integer 'contador personal del dado
Dim cda2 As Integer
Dim numdado As Integer 'numero que que saldrá en el dado
Dim numdado2 As Integer
Dim trmlisto As Integer 'Valdra uno cuando la animacion se encuentre con el numero buscado por primera vez
Dim trmlisto2 As Integer
Private Sub cmdLanzarDado_Click()
Randomize
numdado = Int(Rnd * 6) + 1 'generamos un numero aleatorio de 1-6
numdado2 = Int(Rnd * 6) + 1 'generamos un numero aleatorio de 1-6
lblNum = numdado 'mostramos el numero generado en el label
lblNum2 = numdado2 'mostramos el numero generado en el label2
trmlisto = 0 'inicializamos la flag
tmrdadoanim.Enabled = True 'activamos el timer de animacion
trmlisto2 = 0 'inicializamos la flag2
tmrdadoanim2. Enabled = True 'activamos el timer de animacion2
End Sub
Private Sub tmrdadoanim_Timer()
cda = cda + 1
If cda > 31 Then cda = 1 'cuando llega a 31 (imagen 31) regresa de nuevo a la 1
If cda = dibdado(numdado) Then 'cuando coincide el dibujo del numero del dado con el numero que queremos que aparezca en el dado
'tmrdadoanim.Enabled = False 'Si queremos que no de tanta vuelta, quitamos el comment de esta linea y borramos las siguientes dos
If trmlisto = 1 Then tmrdadoanim.Enabled = False 'si la flag estaba activada, apagamos el timer
trmlisto = 1 'activamos la flag
End If
pctDado.Picture = LoadPicture(App.Path & "/dado/" & cda & ".jpg", , vbBlack) 'cargamos la imagen respectiva
End Sub
Y en esta función esta el tema si numdado es 1 que me sume el contador pero siempre me lo pone el 0
'devuelve el nombre del dibujo que contiene el numero del dado
Function dibdado(numd As Integer) As Integer
Dim Cont As Integer
Dim Cont2 As Integer
Dim col As Collection
Dim I As Long
Set col = New Collection
Select Case numd
Case 1: dibdado = 15
Case 2: dibdado = 19
Case 3: dibdado = 7
Case 4: dibdado = 23
Case 5: dibdado = 27
Case 6: dibdado = 1
End Select
If numdado = 1 Then
Cont = Cont + 1
AtaqueLb.Caption = Cont
End If
If numdado = 2 Then
Cont = Cont + 1
DefensaLb.Caption = Cont
End If
If numdado = 3 Then
Cont = Cont + 1
MovimientoLb.Caption = Cont
End If
If numdado = 4 Then
Cont = Cont + 1
MagiaLb.Caption = Cont
End If
If numdado = 5 Then
Cont = Cont + 1
InvocarLb.Caption = Cont
End If
If numdado = 6 Then
Cont = Cont + 1
InvocarLb.Caption = Cont
End If
End Function
2 Respuestas
Respuesta de javier_007
1
Respuesta de isabel67
1