Hola muy buenas con todos los mienbros del foro y en especial de esta zona referida ala libreria tan pero tan genial q encontre weno al grano con la duda q tengo es saber si se puede aser animaciones con varios graficos o sea tengo 20 imagenes image1,image2..............image20
y no se com implentarlos no se si talves pordrian ayudarme
gracias de antemano :)
Puedes hacer animaciones con graficos sueltos o dibujando regiones de un mismo grafico (MAP_SetRegion()). Sencillamente se trata de tener una lista indicando que graficos componen la animacion y recorrerlo uno por uno cada x intervalo de tiempo:
Funcion DibujarAnimacion()
Si Tiempo >= Intervalo Entonces
i = i + 1
Si i > 5 Entonces i = 0
Dibujar(grafico(i))
Fin Si
Tiempo = TiempoActual()
Fin Funcion
Salu2...
weno perdona por no responder ni probar el codigo que me pasates es que taba liado con mi examenes
bueno tengo el siguiente problema
Option Explicit
Dim m_gfx As dx_GFX_Class
Public fondo As Long
Public tanque(19) As Long
Public numtan As Integer
Dim Looping As Boolean
Private Sub animator_Timer()
numtan = numtan + 1
If numtan >= 19 Then
numtan = 0
End If
End Sub
Private Sub Form_Load()
'Mostramos la ventana:
Me.Show
'Creamos la instancia de la clase dx_GFX:
Set m_gfx = New dx_GFX_Class
'Inicializamos la clase y el modo de video a 640x480 en modo ventana:
Call m_gfx.Init(Me.hWnd, 640, 480, , True)
'Cargamos un grafico en memoria:
Sprite = m_gfx.MAP_Load(App.Path & "\Texture.png", 0)
tanque(1) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_000.png", 255)
tanque(2) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_001.png", 255)
tanque(3) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_002.png", 255)
tanque(4) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_003.png", 255)
tanque(5) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_004.png", 255)
tanque(6) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_005.png", 255)
tanque(7) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_006.png", 255)
tanque(8) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_007.png", 255)
tanque(9) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_008.png", 255)
tanque(10) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_009.png", 255)
tanque(11) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_010.png", 255)
tanque(12) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_011.png", 255)
tanque(13) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_012.png", 255)
tanque(14) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_013.png", 255)
tanque(15) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_014.png", 255)
tanque(16) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_015.png", 255)
tanque(17) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_016.png", 255)
tanque(18) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_017.png", 255)
tanque(19) = m_gfx.MAP_Load(App.Path & "\tanque\big_emo_000_018.png", 255)
Looping = True
Do While Looping
Call m_gfx.DRAW_Map(Sprite, 0, 0, 0, 0, 0)
Call m_gfx.DRAW_Map(tanque(numtan), 0, 0, 0, 0, 0)
'Ejecutamos las llamadas de la clase grafica:
Call m_gfx.Frame
Loop
'Descargamos el grafico de la memoria:
Call m_gfx.MAP_Unload(tanque(19))
'Terminamos la ejecucion de la clase:
Call m_gfx.Terminate
'Destruimos la instancia de la clase:
Set m_gfx = Nothing
End
End Sub
Private Sub Form_Unload(Cancel As Integer)
Looping = False
End Sub
pues el error que tengo es que la animacion se desarrola con normalidad pero al terminar todo el array de imagenes que almacene anteriormente deberia volver a animar pero justo al final termina imagen 19 y entra sprite para continuar de nuevo no se por que se debe esto si podrias ayudarme a ver donde esta el errorseria de mucha ayuda
Pues a simple vista lo unico que veo mal son 3 cosas: la llamada cuando intentas liberar la memoria descargando los graficos del tanque:
Call m_gfx.MAP_Unload(tanque(19))
Si quieres descargarlos todos tienes que descargarlos uno a uno, ahi solo estas descargando el sprite 19 del array, el segundo que veo es que asignas incorrectamente el colorkey a los sprites. 255 no es rojo en formato ARGB, que esl formato que se usa en la libreria, para ello usa las funciones de color que ofrece la clase grafica (y si los PNG tienen transparencia no has de indicar colorkey alguno) y el ultimo que veo que empiezas a usar el array por el elemento 1 cuando el primer elemento siempre es el 0 (a no ser que declares la cabecera Option Base 1)
Sobre lo de la animacion no he visto ningun error, el codigo del evento timer esta correcto salvo que yo cambiaria la expresion de condicion por:
If numtan > 19 Then
Ya que de lo contrario, con el operador >=, el ultimo fotograma jamas te lo mostrara. Por lo demas he hecho una prueba con tu codigo y me ha funcionado sin problemas reproduciendo la secuencia completa de forma continua.
Salu2...