Es posible manejar objetos 3d con esta libreria?
Me gustaria poder visualizar y mover objetos 3d , creados con 3dsmax , es posible esto?
Me gustaria poder visualizar y mover objetos 3d , creados con 3dsmax , es posible esto?
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenuEn el Form_Main:
Public m_Input As dx_Input_Class ' Objeto que hace referencia a la clase de lectura de perifericos.
Dim Ok As Boolean
Dim BackGround As Long
Dim Arriba As Long
Dim Abajo As Long
Dim Izquierda As Long
Dim Derecha As Long
Dim Playerz As Long
Dim frm_main As Form1
Private Sub Form_Load()
Me.Show ' Forzamos a que se muestre la ventana.
' Creamos los objetos de dx_lib32:
Set m_Gfx = New dx_GFX_Class
Set m_Input = New dx_Input_Class
'Inicializamos los objetos:
Call m_Gfx.Init(Me.hWnd, 309, 310, 32, True, False, False, 60)
Call m_Input.Init(Me.hWnd)
BackGround = m_Gfx.MAP_Load(App.Path & "\Grafico\fondo.jpg", 0, True)
Arriba = m_Gfx.MAP_Load(App.Path & "\Grafico\arriba.bmp", m_Gfx.ARGB_Set(100, 0, 0, 0), True)
Abajo = m_Gfx.MAP_Load(App.Path & "\Grafico\abajo.bmp", m_Gfx.ARGB_Set(100, 0, 0, 0), True)
Izquierda = m_Gfx.MAP_Load(App.Path & "\Grafico\izquierda.bmp", m_Gfx.ARGB_Set(100, 0, 0, 0), True)
Derecha = m_Gfx.MAP_Load(App.Path & "\Grafico\derecha.bmp", m_Gfx.ARGB_Set(100, 0, 0, 0), True)
Ok = True
Do While Ok
If Not Player Is Nothing Then Call Player.Update
Call m_Gfx.DRAW_Map(BackGround, 0, 0, 0, 0, 0)
If Not Player Is Nothing Then Call Player.Draw
'Ejecutamos las llamadas de la clase grafica:
Call m_Gfx.Frame(0, 60)
DoEvents
Loop
'Descargamos el grafico de la memoria:
Call m_Gfx.MAP_Unload(BackGround)
Call m_Gfx.MAP_Unload(Arriba)
Call m_Gfx.MAP_Unload(Abajo)
Call m_Gfx.MAP_Unload(Izquierda)
Call m_Gfx.MAP_Unload(Derecha)
'Terminamos la ejecucion de la clase:
Call m_Gfx.Terminate
'Destruimos la instancia de la clase:
Set m_Gfx = Nothing
End Sub
Option Explicit
' Define la posicion y el area que ocupa el objeto en pantalla:
Public X As Long, Y As Long, Width As Long, Height As Long
' Constructor de la clase:
Private Sub Class_Initialize()
' Posicionamos la entidad en pantalla:
X = Form1.m_Gfx.Screen.Width / 2
Y = Form1.m_Gfx.Screen.Height - 48
Dim inf As GFX_Info
Call Form1.m_Gfx.MAP_GetInfo(Form1.gfx_Player, inf)
Width = inf.Image_Width
Height = inf.Image_Height
End Sub
' Destructor de la clase:
Private Sub Class_Terminate()
End Sub
' Actualiza la logica del objeto:
Public Sub Update()
' Si mantenemos pulsada la tecla flecha izquierda moveremos en esa direccion la entidad:
If Form1.m_Input.Key(Key_Left) Then
Form1.Playerz = Izquierda
X = X - 10
If X < 10 Then X = 10
' Si mantenemos pulsada la tecla flecha derecha moveremos en esa direccion la entidad:
ElseIf Form1.m_Input.Key(Key_Right) Then
Form1.Playerz = Derecha
X = X + 10
If X > Form1.m_Gfx.Screen.Width - 10 Then X = Form1.m_Gfx.Screen.Width - 10
End If
End Sub
' Dibuja el objeto:
Public Sub Draw()
Call Form1.m_Gfx.DRAW_MapEx(Form1.Playerz, X, Y, 0, 0, 0, 0, Blendop_Color, &HFFFFFFFF, Mirror_None, Filter_Bilinear, True)
' Descomenta esta linea para poder ver el area de colision del objeto.
' Podras comprobar que el area es altearada respecto al espacio real que ocupa la imagen
' para que la colision de los disparos con las naves evite ser en zonas vacias de la imagen:
'Call Form1.m_Gfx.DRAW_Box(X - (Me.Width / 2), Y - (Height / 2), X + (Me.Width / 2), Y + (Height / 2), 0, -1)
End Sub