Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: HJZR4 en 28 Octubre 2007, 20:36 pm



Título: [DUDA] Error con los tiles. Juegos.
Publicado por: HJZR4 en 28 Octubre 2007, 20:36 pm
Pos tengo un problemilla y nose porque le pasa...

Código:
' *Procedimiento para dibujar el mapa.
Sub DibujarMapa()
Dim nMapa As Integer        ' Número de archivo.
Dim sMapa As String        ' Ruta y nombre de archivo.
Dim TilesMapa As String     ' Variable para leer los tiles de cada linea.
Dim Columnas As Integer     ' Número de columnas
Dim Filas As Integer        ' Número de filas
Dim ch As String            ' Variable para cambiar caracteres
Dim i As Integer            ' Contador
Dim c As Integer            ' Contador2
Dim n As Integer            ' Contador3
Dim m As Integer            ' Contador4

Dim f As Integer
    i = 1
    n = 0
    m = 0
    nMapa = FreeFile
    sMapa = MapasDir & "mapa.map"
   
    Open sMapa For Input As #nMapa
   
    ' Coge el número de columnas y filas
    Input #nMapa, Filas, Columnas
   
    For f = 1 To Filas
    m = 0
        Line Input #nMapa, TilesMapa
       
            For c = 1 To Columnas
            ch = Mid$(TilesMapa, c, 1)
           
                ' Hierba
                If LCase$(ch) = "#" Then
                    Load FrmMapa.tile(i)
                    FrmMapa.tile(i).Top = 0 + n
                    FrmMapa.tile(i).Left = 0 + m
                    FrmMapa.tile(i).Picture = LoadPicture(GraficosDir & "200.jpg")
                    FrmMapa.tile(i).Visible = True
                ' Agua
                ElseIf LCase$(ch) = "A" Then
                    Load FrmMapa.tile(i)
                    FrmMapa.tile(i).Picture = LoadPicture(GraficosDir & "204.jpg")
                    FrmMapa.tile(i).Top = 0 + n
                    FrmMapa.tile(i).Left = 0 + m
                    FrmMapa.tile(i).Visible = True
                ' Tierra
                ElseIf LCase$(ch) = "T" Then
                    Load FrmMapa.tile(i)
                    FrmMapa.tile(i).Top = 0 + n
                    FrmMapa.tile(i).Left = 0 + m
                    FrmMapa.tile(i).Picture = LoadPicture(GraficosDir & "201.jpg")
                    FrmMapa.tile(i).Visible = True
                ' Desierto
                ElseIf LCase$(ch) = "D" Then
                    Load FrmMapa.tile(i)
                    FrmMapa.tile(i).Top = 0 + n
                    FrmMapa.tile(i).Left = 0 + m
                    FrmMapa.tile(i).Picture = LoadPicture(GraficosDir & "202.jpg")
                    FrmMapa.tile(i).Visible = True
                End If
               
                i = i + 1
                m = m + 50
               
                    If c = Columnas Then
                        n = n + 50
                        'MsgBox "n + 50"
                    End If
            Next c
    Next f
    Close #nMapa

End Sub


Lee el mapa muy bien y tal el carácter "#", pero al cambiar el caracter a "D" por ejemplo, no se ve, directamente, no carga el tile(i)... Alguien tiene alguna idea de porque ocurre esto? Si no se entiendo, decidlo y lo intento explicar mejor... Gracias.


Título: Re: [DUDA] Error con los tiles. Juegos.
Publicado por: Hendrix en 28 Octubre 2007, 20:58 pm
Bueno, tendira que ser una D minuscula, ya que estas diciendo que si ch en minusculo es igual a D (mayuscula) hacer lo siguiente, y como # no es ni minuscula ni mayuscula la comparación es correcta, para que compare con D mayuscula tendria que ser UCase (Upp Case)

 :)


Título: Re: [DUDA] Error con los tiles. Juegos.
Publicado por: HJZR4 en 28 Octubre 2007, 21:13 pm
aaaaaaaaamigoooo... xDDDDDDD que fallos... xDDDDDD

Muxisimas gracias :D :****** t quiero xD


Título: Re: [DUDA] Error con los tiles. Juegos.
Publicado por: Hendrix en 28 Octubre 2007, 21:36 pm
 :xD :xD

PD: Cuando termines el juego postealo  :D


Título: Re: [DUDA] Error con los tiles. Juegos.
Publicado por: HJZR4 en 28 Octubre 2007, 21:56 pm
por supuesto :p