Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Mover personaje por laberinto

Estas en el tema de Mover personaje por laberinto en el foro de Visual Basic clásico en Foros del Web. Hola, he creado un laberinto con visual basic y necesito mover al personaje de este. He provado de usar el KeyDown pero no acabo de ...
  #1 (permalink)  
Antiguo 29/03/2008, 13:35
 
Fecha de Ingreso: enero-2008
Ubicación: España (Barcelona)
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Mover personaje por laberinto

Hola, he creado un laberinto con visual basic y necesito mover al personaje de este. He provado de usar el KeyDown pero no acabo de conseguirlo ¿Podria alguien explicarme como mover al personaje?
He creado el laberinto con
Código:
Dim T(1 To 15, 1 To 8) As Integer
y luego a cada coordenada le he asignado su correspondiente imagen.

Lo que supongo que habrá que hacer es redibujar el laberinto a cada movimiento pero no consigo hacerlo.

Gracias de antemano
Kraigs

Edit:

Ya he solucionado el problema del keydown y consigo mover al personaje pero al llegar a las coordenadas (10;2) o (10;6) me salta error


y cuando le doy a debug me sale esto


No consigo arreglarlo, espero que alguien pueda ayudarme.

Última edición por Kraigs; 30/03/2008 a las 06:51 Razón: Problema medio resuelto
  #2 (permalink)  
Antiguo 30/03/2008, 11:39
 
Fecha de Ingreso: enero-2008
Ubicación: España (Barcelona)
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Mover personaje por laberinto

¿Tras 36 lecturas nadie ha podido desvelar mi problema?
¿Alguien podria decirme aunque sea a que se debe este tipo de errores?
Gracias
  #3 (permalink)  
Antiguo 30/03/2008, 20:56
 
Fecha de Ingreso: febrero-2008
Mensajes: 303
Antigüedad: 16 años, 2 meses
Puntos: 2
Re: Mover personaje por laberinto

Busca ese error en la ayuda de visual basic o en internet parece que
hay un conflicto con alguna funcion o variable

cheka esto

Esta buena tu aplicacion.
  #4 (permalink)  
Antiguo 31/03/2008, 11:04
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Re: Mover personaje por laberinto

El problema es que no consigo leer el código desde tu imagen...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 31/03/2008, 13:26
Avatar de jcasillase  
Fecha de Ingreso: febrero-2008
Mensajes: 7
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Mover personaje por laberinto

El error Type Mismatch se debe a que tu variable esta perdiendo el valor dejandola como campo no numerico o estas quedando fuera de los rangos que tu mismo estableces.... Revisa el valor de Coordenada.Caption y checa perfectamente esa linea de codigo con el valor que tienes asignado en ese momento... Saludos

Juan Ramon Casillas Estrada
  #6 (permalink)  
Antiguo 01/04/2008, 09:35
 
Fecha de Ingreso: enero-2008
Ubicación: España (Barcelona)
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Mover personaje por laberinto

Ok gracias por las respuestas voy a "re"revisar el codigo entero aunque no encontré el problema anteriormente.

La parte que me da error es esta
Código:
If (Mid(Coordenada.Caption, 1, 1) + X >= 1) And (Mid(Coordenada.Caption, 1, 1) + X <= 15) And (Mid(Coordenada.Caption, 3, 1) + Y >= 1) And (Mid(Coordenada.Caption, 3, 1) + Y <= 8) Then
If T(Mid(Coordenada.Caption, 1, 1) + X, Mid(Coordenada.Caption, 3, 1) + Y) = 3 Then
T(Mid(Coordenada.Caption, 1, 1), Mid(Coordenada.Caption, 3, 1)) = 3
T(Mid(Coordenada.Caption, 1, 1) + X, Mid(Coordenada.Caption, 3, 1) + Y) = 1
Coordenada.Caption = Mid(Coordenada.Caption, 1, 1) + X & "," & Mid(Coordenada.Caption, 3, 1) + Y
Redibujar

Else
If T(Mid(Coordenada.Caption, 1, 1) + X, Mid(Coordenada.Caption, 3, 1) + Y) = 2 Then
MsgBox "¡Felicitaciones acabas de completar el nivel!", , "Fin del juego"
Timer1.Enabled = False
End If

End If
End If
End If

End Sub
  #7 (permalink)  
Antiguo 01/04/2008, 09:39
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Re: Mover personaje por laberinto

Así como te respondió jcasillase debes revisar el valor del Caption, tal vez no sea un valor numérico válido.

Y te recomiendo que crees una variable de tipo numérico para manejar en el código en vez de usar directamente Coordenada.Caption... Algo así:
Código:
 
Dim vCoordenada As Double
vCoordenada = Val(Coordenada.Caption)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 01/04/2008, 10:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Mover personaje por laberinto

Un par de cosillas:

- A primera vista, me parece que tu error se produce por no utilizar algunos paréntesis en tu condición (recuerda que será siempre mejor utilizar paréntesis de más, sobre todo si haces condiciones largas)... Comprueba la Prioridad de los operadores.

- Si estuviera equivocado en el primer vistazo de tu condición, puedes probar dónde esta el error exactamente, en la ventana inmediato que tienes debajo: tecleando ? seguido de partes completas de tu condición. De esta forma, podrás observar el resultado de dichas partes, o bien reproducir el error en partes cada vez más pequeñas.

Saludos, Foxi.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:45.