HE PROGRAMADO GRAFICOS EN OTROS LENGUAJES P.E. ENSAMBLADOR Y SE QUE HAY QUE HACER USO DE LAS MASCARAS PARA QUE NO SALGA EL CUADRADITO DEL DIBUJO PERO CON ESTA LIBRERIA NO SE COMO HACERLO.
OTRA DUDA ES COMO SOLUCIONAR EL PROBLEMA DE QUE ME DESAPARECE EL GRAFICO CUNDO LO MUEVO Y AL PULSAR OTRA VEZ APARECE Y VUELVE A DESAPARECER CREANDO UN DESAGRADABLE EFECTO PORQUE NO SE QUEDA EL GERAFICO EN PANTALLA.
MUCHAS GRACIAS
Wenas, lo primero si no es mucha molestia, te pediria que no escribieras en mayusculas ya que se hace algo incomodo leerte si no :)
Cita de: "davidPT"HE PROGRAMADO GRAFICOS EN OTROS LENGUAJES P.E. ENSAMBLADOR Y SE QUE HAY QUE HACER USO DE LAS MASCARAS PARA QUE NO SALGA EL CUADRADITO DEL DIBUJO PERO CON ESTA LIBRERIA NO SE COMO HACERLO.
Aqui usamos un valor denominado
ColorKey que representa el valor del color que esta de fondo en la imagen. Si te fijas, en la funcion de carga
MAP_Load() hay un parametro para indicar este valor. Al cargar el grafico con el
Colorkey especificado este no se pintara cuando dibujes la imagen.
Cita de: "davidPT"OTRA DUDA ES COMO SOLUCIONAR EL PROBLEMA DE QUE ME DESAPARECE EL GRAFICO CUNDO LO MUEVO Y AL PULSAR OTRA VEZ APARECE Y VUELVE A DESAPARECER CREANDO UN DESAGRADABLE EFECTO PORQUE NO SE QUEDA EL GERAFICO EN PANTALLA.
A todos nos paso algo parecido la primera vez al dibujar con algo que no fuese con un control PictureBox o Image del VB 6.0 :lol: Como dx_lib32 borra la pantalla justo antes de pintar el siguiente frame en la pantalla, se deben realizar las llamadas de dibujo en cada vuelta del bucle. Lo que deberias hacer seria tener unas variables donde almacenar las coordenadas de posicion del dibujo que pasarias como parametro a la funcion de dibujo y a las que puedas manipular desde otra funcion o metodo. De esta forma siempre se vera la imagen. Un sencillo ejemplo:
Option Explicit
Dim m_GFX As New dx_GFX
Dim m_Input As New dx_Input
Dim Sprite As Long
Dim Posicion As Vertex
Dim Looping As Boolean
Private Sub Form_Load()
Me.Show()
Call m_GFX.Init(Me.Hwnd, 640, 480, 16, True, False, False, False, 60)
Call m_Input.Init(Me.Hwnd)
' Cargamos un grafico que tiene como color de fondo el verde puro y se lo indicamos como ColorKey:
Sprite = m_GFX.MAP_Load("player.bmp", m_GFX.ARGB_Set(255, 0, 255, 0)
Looping = True
Do While Looping
If m_Input.Key(Key_Escape) Then
Looping = False
ElseIf m_Input.Key(Key_Left) Then
Posicion.X = Posicion.X - 1
ElseIf m_Input.Key(Key_Up) Then
Posicion.Y = Posicion.Y - 1
ElseIf m_Input.Key(Key_Right) Then
Posicion.X = Posicion.X + 1
ElseIf m_Input.Key(Key_Down) Then
Posicion.Y = Posicion.Y + 1
End If
Call m_GFX.DRAW_Map(Sprite, Posicion.X, Posicion.Y, 0)
Call m_GFX.Frame()
Loop
Call m_GFX.Terminate()
Call m_Input.Terminate()
End
End Sub
Private Sub Form_Unload(Cancel As Integer)
Looping = False
End Sub
Salu2...