Este juego tiene tres niveles, el objetivo es sumar puntos. Para sumar puntos debemos mantener el puntero del mouse sobre la figura verde, si movemos el mouse sobre la o las figuras rojas, los puntos se restaran. Para ganar cada nivel tenemos que alcanzar un limite de puntos en un tiempo determinado.
Al iniciar ejecutar el programa nos aparecerá esta ventana, le damos click en continuar.
Una vez que hayamos presionado continuar nos aparecerá la ventana del juego.
En esta ventana podemos observar tres secciones:
1.- Pantalla del juego: Aquí las figuras que aparecen en pantalla se van a mover de un lugar a otro.
2.- Selección de nivel: Antes de empezar a jugar debemos seleccionar el nivel en esta parte.
3.- Sección de información: Aquí vamos a poder observar el tiempo, el puntaje actual y el objetivo de puntos al cual tenemos que llegar para superar cada nivel.
Explicación del código.
1.- En este programa utilizamos dos ventanas la primera se llama Instrucciones y la segunda juego. La ventana que nos aparece al ejecutar el programa es la de Instrucciones. Al presionar el boton continuar nos dirigimos a la siguiente ventana, esto lo hacemos gracias a las propiedades .sow ( mostrar ) y .hide (ocultar), con las siguientes lineas de código.
Private Sub Continuar_Click()
Juego.Show
Instrucciones.Hide
End Sub
2.- Una vez puesta en marcha la ventana del juego se ejecuta un temporizador (t2) con el cual comprobaremos que option button se ha seleccionado. Para verificar si un option button ha sido seleccionado utilizamos la siguiente instrucción:
If optionbutton.Value = True Then // si se a seleccionado el option entonces.
// Proceso a ejecutarse.
End If
La propiedad .Value tiene dos opciones true(optionbutton seleccionado) y false ( optionbutton no seleccionado).
Esto pasa si seleccionamos el primer optionbutton: Nivel 1.
If n1.Value = True Then
jugar.Enabled = True
L2 = 60
L1 = 0
Objetivo = 500
t1.Interval = 700
E.Visible = False
End If
El boton jugar se habilita, colocamos en el label L2 (tiempo) el numero 60, el numero 0 en label L1 (puntaje), 500 en el label Objetivo (Objetivo) , colocamos la velocidad de movimiento de los objetos en 700ms, ocultamos una tercera figura (E).
Una vez seleccionado el nivel, presionamos el botón jugar.
Al presionar el botón jugar:
Deshabilitamos el primer temporizador (t2) que activamos, le asignamos a la variable tiempo el valor del label L2.
t2.Enabled = False
TIEMPO = L2
Vamos a la subrutina enable, en esta subrutina habilitamos los objetos
Private Sub enable() t3.Enabled = True (Temporizador del conteo regresivo) C.Enabled = True (Figura verde) D.Enabled = True (Figura roja) E.Enabled = True (Figura roja aparece en el nivel 3) t1.Enabled = True (Temporizador donde se lleva a cabo el movimiento de los objetos en pantalla) End Sub
En el temporizador t1 (Private Sub t1_Timer()) tenemos lo siguiente:
Le damos a UDv un numero aleatorio que va a ir de 0 a 4320 .
UDv = (CLng(0 - 4200) * Rnd + 4320)
Le damos a LRv un numero aleatorio que va a ir de 0 a 9800
LRv = (CLng(0 - 9480) * Rnd + 9480)
Asignamos los valores aleatorios de: UDv a la propiedad D.top y LRv a la propiedad D.left.
Con la propiedad top movemos el objeto de arriba hacia abajo y con la propiedad left movemos el objeto de derecha a izquierda.
Los valores mínimo y máximo que asignamos anteriormente a UDv y LRv dependerán del ancho de nuestra pantalla en la cual queremos que se desarrolle el juego.
El valor mínimo de UDv corresponde al valor de la propiedad top, ubicando el objeto en el limite superior de nuestra pantalla de juego.
El valor máximo de UDv corresponde al valor de la propiedad top, ubicando el objeto en el limite inferior de nuestra pantalla de juego.
Lo mismo pasa con el valor aleatorio de LRv, en este caso utilizamos el valor de la propiedad left. Esto lo tienen que hacer con los damas objetos que estaran en movimiento los nombres de UDv y LRv, pueden remplazarlos por cualquier nombre. Hay que generar diferentes números aleatorios para cada objeto porque si le ponemos a todos UDv y LRv, todos se van a mover a la misma dirección.
Asignamos los numeros aleatorios generados al objeto, en este caso es el objeto llamado D.
D.Top = UDv
D.Left = LRv
En el temporizador t3 (Private Sub t3_Timer()) tenemos lo siguiente:
Restamos el valor de la variable tiempo e imprimimos ese valor en el label(L2)
TIEMPO = TIEMPO - 1
L2.Caption = TIEMPO
Cuando el tiempo sea igual a 0.
If TIEMPO = 0 Then
Nos dirigimos a la subrutina disable, en esa subrutina deshabilitamos: los objetos (C,D,E), el temporizador de conteo regresivo (t3) y el Temporizador donde se lleva a cabo el movimiento de los objetos en pantalla (t1)
disable
Private Sub disable()
t3.Enabled = False
t1.Enabled = False
C.Enabled = False
D.Enabled = False
E.Enabled = False
End Sub
Enceramos la variable sum, habilitamos el botón jugar y mostramos un mensaje en pantalla, señalando que perdió el juego porque se le termino el tiempo.
sum = 0
jugar.Enabled = True
MsgBox "Se termino el tiempo", 64, "Perdiste"
Habilitamos los optionbuttons y el temporizador t2
n1.Enabled = True
n2.Enabled = True
n3.Enabled = True
t2.Enabled = True
End If
End Sub
Deshabilitamos el botón jugar.
jugar.Enabled = False
Escondemos el label L3, este label contiene el texto (SELECCIONE EL NIVEL Y PRESIONE JUGAR PARA QUE EMPIECE EL JUEGO)
L3.Visible = False
Deshabilitamos los optionbuttons
n1.Enabled = False
n2.Enabled = False
n3.Enabled = False
Ponemos en 0 el label L1 (Puntaje)
L1.Caption = "0"
Evento MouseMove
Utilizamos este evento en cada una de los objetos que se moverán. Como les decia en este caso vamos a utulizar este evento para que cuando coloquemos el mause sobre los objetos en movimiento (en este caso las imagenes), se sumen o se resten los puntos, para ello tenemos que crear una variable en este caso es la variable sum. A continuacion paso a explicar el codigo de la imagen verde (la que suma los puntos).
Cada vez que pasemos el mouse sobre esta imagen sumamos la variable sum e imprimimos su valor en el label L1
Private Sub C_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
sum = sum + 1
L1.Caption = sum
Si alcanzamos el objetivo de puntos especificados para cada nivel entonces:
If sum = Objetivo Then
Enceramos la variable sum e imprimimos un mensaje en un MsgBox
sum = 0
MsgBox "Felicitaciones, Completaste el nivel.", vbInformation, "Ganaste"
Deshabilitamos los objetos.
disable
Habilitamos los optionbuttons, el boton jugar, t2 y desactivamos t3
n1.Enabled = True
n2.Enabled = True
n3.Enabled = True
jugar.Enabled = True
t2.Enabled = True
t3.Enabled = False
End If
End Sub
Para las imágenes que restan los puntos cuando pasamos el mouse sobre ellas:
Private Sub D_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
sum = sum - 1
L1.Caption = sum
End Sub
Simplemente restamos el valor de la variable sum y lo mostramos en el label L1
Eso es todo, si tienen alguna inquietud escribanlo en los comentarios.
Publicar un comentario