Tema: Laberinto
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/02/2008, 11:26
Avatar de piojoman
piojoman
 
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 224
Antigüedad: 19 años, 4 meses
Puntos: 3
Re: Laberinto

Bueno, viendo que se te complico entender todo esto que en realidad es algo bastante sencillo te pongo todo armado, copialo al VB6, lee los comentario y ejecuta la aplicacion para que veas que hace!!!

Necesitamos: Dos controles Shape y nombrar al segundo igual que al primero!
-----------
'Mira es facil:
'Para ver como se hace crea un rectangulo y ponelo en el form, Shape1. Crea
'otro mas y ponele Shape1, te va a decir si queres crear una matriz de controles
'le decis que si y pones este codigo.


Private Sub Form_Load()
Dim Cuadros As String, x As Byte, Datos As String, Pos As Byte, Aux As Byte

Cuadros = "01,02,03,03,02,01,02,02,02," ' Mapa de 3x3 (9 casillas),varia los num del 01 al 04

Aux = 0
For x = 1 To Len(Cuadros) Step 3 'iniciamos un bucle del tamaño de la cadena
Datos = Mid(Cuadros, x, 2) 'Leer la cadena Cuadros en 2 letras
If Pos = 4 Then 'Se fija si llego a la ultima casilla de una fila
'Codigo (Pasa a otra fila)
Pos = 1 'Reinicia el contador
Else
Pos = Pos + 1
'Codigo (Pasa a otra casilla de la columna)
End If


Select Case CInt(Datos)
Case 1
Col = &HC0E0FF 'Son colores comunes, son los que se ejecutan segun los num de arriba
Case 2
Col = &H80FF&
Case 3
Col = &HFF00&
Case 4
Col = &HFF8080
End Select

Aux = Aux + 1
Load Shape1(Aux)
Shape1(Aux).Visible = True

Shape1(Aux).BackColor = Col
If (Aux Mod 3) = 0 Then 'el 5 es la Cant de cuadros por fila
Shape1(Aux).Left = Shape1(0).Left
Shape1(Aux).Top = Shape1(Aux - 1).Top + Shape1(Aux - 1).Height
Else
Shape1(Aux).Left = Shape1(Aux - 1).Left + Shape1(Aux - 1).Width
Shape1(Aux).Top = Shape1(Aux - 1).Top
End If
Next
Shape1(Aux).Left = Shape1(0).Left 'Este es el ultimo casillero
Shape1(Aux).Top = Shape1(0).Top 'Este es el ultimo casillero

End Sub


'Paso a explicar lo que hace. el diseño del nivel esta en la variable,
'cuadros al principio. dos casilleros y una coma (,) determinan como sera,
'la casilla (en el ejemplo sera el color), por este motivo debemos poner
'todo en orden: 01,01,01, seran tres casillas seguidas de un mismo color
'o imagen. despues en Col lo que hacemos es decirle que colores y/o imagenes
'se cargaran cuando ponemos los numeros anteriores. 01 para el arbol, el 02
'las nubes, etc. o el 03 para el azul, el 04 el rojo. Para agregar mas
'tenes que poner Case 5 (valor que corresponda) y abajo llenar la variable col
' con su color correspondiente.
'En lo que sigue mas abajo, es lo que dibuja los cuadritos,aca no tenes que tocar nada,
'a excepcion de If (Aux Mod 3) = 0 Then, el 3 indica la cant de cuadritos por fila
'queremos, del resto nada. por ultimo las ultimas dos lineas son del ultimo cuadrito
'creado, que se posiciona en el lugar del primero que creamos comienzo de todo
' y es el unico que no tenemos ningun tipo de control!!! Con las imagenes es muy
'parecido, solo que cambia Shape1(Aux).BackColor = Col por Shape1(Aux).picture = LoadPicture(Col)
'pero en vez de crear Shape al comienzo tendras que hacer todo de nuevo con el
'control Image y cambiar obviamente todo los Shape1 por Image1 o lo que corresponda.
'despues en Col = &H80FF& tendremos que cambiar por Col= "(ruta de la imagen)"
'Esto es todo presiona F5 y fijate que es lo que hace y cambia los valores
'mencionados para que entiendas mejor que hace cada cosa!!!