Fecha y hora actual: Lunes 25 Mar 2019 11:24
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Tutorial de DirectX para VB .NET (DirectX8+)

Responder al Tema Ir a página Anterior123Siguiente

Índice del Foro > Visual Basic .NET > Tutorial de DirectX para VB .NET (DirectX8+)

Autor Mensaje
javi0unavailable



Registrado: 08 Feb 2012
Mensajes: 8

Mensaje Publicado: Jueves 09 Feb 2012 04:57

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

No, ya probé de todas las maneras posibles de escribirlo, incluida esa...

No se qué más información puedo proporcionar, ya me dices si necesitas saber algo más...

¿Últimamente (en este año) has utilizado DirectX? me huele que han cambiado cosas pero no se... ya no se que pensar, espero respuestas.
Gracias

Volver arriba
Ver perfil del usuario Enviar mensaje privado
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Jueves 09 Feb 2012 16:02

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

Tienes instalado las SDK? Prueba instalarlo... Comprueba la versión de los DirectX que tengas instalado.

javi0unavailable escribió:
¿Últimamente (en este año) has utilizado DirectX? me huele que han cambiado cosas pero no se... ya no se que pensar, espero respuestas.
Gracias
Pues no, además, lo he probado recientemente ayer, con mi viejo Visual Studio Express 2008, y las DirectX SDK que tengo instaladas de hace mil años (Noviembre de 2008), y en mi portatil de hace 4 siglos con una ATI viejísima y mira, funciona:


javi0unavailable escribió:
El Visual Studio 2010 me dice: "el tipo Direct3D.Device no está definido"

Mira Javi, vamos hacer una prueba y si no funciona, ya solamente te aconsejaría que llevaras el tema directamente al foro de Microsoft del VS, http://social.msdn.microsoft.com/Forums/es-ES/category/visualstudio . Yo te recomiendo que lo desinstales ya que yo no puedo probar el VS 2010 porque caducó mi periodo de prueba, y lógicamente ahora trabajo con las versiones Express del Visual Studio, las gratuitas y estables. Le faltan componentes y alguna herramienta pero en definitiva me permite hacer todo lo que quiera, incluso lo mismo que el VS 2010. Conseguir el 2008 es cada día más difícil, así que bájate la ISO que encontré aquí y la instalas, pero previa desinstalación completa del 2010. Luego instalas el 2008 y luego los DirectX de Noviembre de 2008. Cuando hagas eso (reinica por si acaso Risa ), me avisas y te muestro un vídeo hecho por mi (actual del 2012) creando una sencilla aplicación DirectX, que vamos no es nada del otro mundo.

ISO del Visual Studio Express 2008 sin el Sp1 (actualizarlo una vez lo instales):
http://go.microsoft.com/fwlink/?LinkId=104679

DirectX SDK (Noviembre de 2008):
http://www.microsoft.com/download/en/details.aspx?id=4064

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
javi0unavailable



Registrado: 08 Feb 2012
Mensajes: 8

Mensaje Publicado: Jueves 09 Feb 2012 19:19

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

WhiteSkull escribió:
Tienes instalado las SDK? Prueba instalarlo... Comprueba la versión de los DirectX que tengas instalado.

Sí, instalé la versión de junio 2010 y referencié la dll correspondiente a la última versión de directX

ruta:
C:\WINDOWS\Microsoft.NET\DirectX for Managed Code

versión DX11
1.0.2911.0\Microsoft.DirectX.Direct3DX.dll

Aunque visto que no funcionaba probé referenciando la del 2005 y nada.

---

Estoy descargando El VS2008 y las SDK del 2008 también para probar lo que me has comentado. En cuanto lo pruebe comento la experiencia.

Gracias por tomarte la molestia en ayudarme, de verdad que lo aprecio mucho.

Un saludo.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
javi0unavailable



Registrado: 08 Feb 2012
Mensajes: 8

Mensaje Publicado: Viernes 10 Feb 2012 18:11

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

Bueno.... por donde empezar.

Sí, me funcionó instalar la versión del 2008. He podido crear el objeto Device y he intentado simplemente mostrar un sprite.
Problemas: que a darle a ejecutar desde VS me salia un error en tiempo de ejecucion en la línea de creación del dispositivo. Buscando he visto que era algo del debugger del VS y que si se ejecutaba la aplicacion fuera del VS funcionaba bien. El caso es que tampoco. He hecho lo mismo que tú al inicio del tutorial, luego miré en una wiki de game programming y también hice los primeros pasos (que al fin y al cabo es lo mismo) sin sprite ni nada, solo pintar el formulario azul y lo mismo.

Así que voy a dejar las DirectX. Quería intentar aprender una pizca de estas librerías por curiosidad ya que todos los juegos actuales para Windows las utilizan, y mi juego no quería ser menos xD.
Pero visto el tiempo gastado (no perdido, porque siempre se aprende algo) y las complicaciones que he tenido prefiero intentarlo por otro lado. Posiblemente pruebe a realizar algo con las SDL y espero no tener más problemas que los propios de programación.

Gracias de nuevo por la ayuda WhiteSkull y felicidades por el foro, tiene muy buena pinta.

Un saludo.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Viernes 10 Feb 2012 19:32

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

ASí es, puede darte el error loaderLock MDA, puedes continuar la ejecución si sabes que todo está ok, o puedes arrancar el IDE con permisos de administrador...

Es una pena que abandones, realmente no es complicado, tanto OpenGL/SDL y DirectX son similares, pero si tu aplicación va encaminada a ejecutarse en un sistema Windows, yo te recomendaría DirectX. Piensa que cuando tienes montado el chiringuito ya todo es más fácil, pero haz de saber, algo que en el tutorial también dejo claro, es que debes tener mínimos conocimientos de alguno de los muchos lenguajes soportados por puntoNET, como C sharp o VB, por lo tanto no lo recomiendo para aquel que acaba de empezar hace pocos meses con la programación puntoNET.

javi0unavailable escribió:
He hecho lo mismo que tú al inicio del tutorial, luego miré en una wiki de game programming y también hice los primeros pasos (que al fin y al cabo es lo mismo) sin sprite ni nada, solo pintar el formulario azul y lo mismo.


En este mismo tutorial se explica como empezar con lo básico, iniciar el dispositivo, que es el ejemplo de la pantalla azul que comentas, con los tres métodos principales para el render, que son el BeginScene(), EndScene() y Present(). Crear un sprite solo lleva una línea de código, y darle textura otra línea, pegarlo a la pantalla son 4 líneas más, en definitiva solo poner un Sprite puede llevarte no más de 20 líneas.

De todas formas puedes encontrar otras alternativas gráficas con otros lenguajes en este foro, como son en C con SDL:
http://www.foro.lospillaos.es/como-hacer-colisiones-con-sdl-vt10189.html

o en Java:
http://www.foro.lospillaos.es/java-bases-y-demo-de-un-juego-sencillo-2d-vt6784.html

Pero en definitiva, hay que instalar las librerías pertinentes buscar un IDE cómodo y no de problemas etc... Realmente todos los programadores pasan por esa etapa de configuración del IDE, instalación de librerías, etc...

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
javi0unavailable



Registrado: 08 Feb 2012
Mensajes: 8

Mensaje Publicado: Sábado 11 Feb 2012 04:42

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

WhiteSkull escribió:

Pero en definitiva, hay que instalar las librerías pertinentes buscar un IDE cómodo y no de problemas etc... Realmente todos los programadores pasan por esa etapa de configuración del IDE, instalación de librerías, etc...

Me 'alegra' saber que no soy el único (mal de muchos consuelo de tontos) jaja.

Bueno, llevo poco tiempo en VB .net, empecé al inicio de este segundo año de FP y es verdad que puede que esto me venga algo grande, pero había que probarlo.
Tampoco me gusta estar preguntando en cada error que me sale aunque aprender por tu cuenta es dificil y a veces no queda más remedio que dar la vara (un poco solo).

He vuelto a darle una vuelta al tema DirectX.
El error en cuestión es en la línea
Código:
dispositivo = New Direct3D.Device(0, DeviceType.Hardware, Me, CreateFlags.SoftwareVertexProcessing, parametro)


Código:
Microsoft.DirectX.Direct3D.NotAvailableException was unhandled
  ErrorCode=-2005530518
  [b]ErrorString="D3DERR_NOTAVAILABLE"[/b]
  IsExceptionIgnored=False
  LastError=1400
  Message="Error in the application."
  Source="Microsoft.DirectX.Direct3D"
  StackTrace:
       at Microsoft.DirectX.Direct3D.Device..ctor(Int32 adapter, DeviceType deviceType, Control renderWindow, CreateFlags behaviorFlags, PresentParameters[] presentationParameters)
       at Proyecto.Form1.Form1_Load(Object sender, EventArgs e) in C:\Documents and Settings\Informatica\Mis documentos\Visual Studio 2008\Projects\Proyecto\Proyecto\Form1.vb:line 25
       at System.EventHandler.Invoke(Object sender, EventArgs e)


Supongo que no tiene nada que ver que programe en una máquina virtual verdad? (tengo la aceleración 3D y vídeo 2D activadas en el virtualbox). Probé a llevarme el exe al equipo anfitrión pero da igual.

Y bueno, gracias por las referencias a otros lenguajes pero el proyecto tiene que ser en VB.NET. En un futuro seguro que echaré un vistazo.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Sábado 11 Feb 2012 17:05

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

Cita:
Supongo que no tiene nada que ver que programe en una máquina virtual verdad? (tengo la aceleración 3D y vídeo 2D activadas en el virtualbox). Probé a llevarme el exe al equipo anfitrión pero da igual.
Claro que tiene que ver, y es posible que el error que estés acusando sea por la inicialización del dispositivo, ya que tienes configurado para usar un dispositivo físico.

DeviceType.Hardware en
Código:
dispositivo = New Direct3D.Device(0, DeviceType.Hardware, Me, CreateFlags.SoftwareVertexProcessing, parametro)


Supuestamente debes tener instalados los DirectX en el sistema operativo de la maquina virtual y el Guest Additions del Virtual Box, además de tener habilitado la aceleración por hardware.


De lo contrario seguirás teniendo el mismo error, en caso de que no puedas solucionarlo, puedes optar por sustituir DeviceType.Hardware por DeviceType.Software o DeviceType.Reference, ambas en caso de ejecutarse, tendrán un rendimiento muy inferior con respecto al uso de un dispositivo físico, pero bueno, si quieres crear un ejecutable que tantee primero si el ordenador donde se ejecuta soporat aceleración por hardware para DirectX, entonces deberías inicializar el dispositivo así para que vaya tanteando la configuración más adecuada:
Código:
...
        Try
            device = New Direct3D.Device(0, DeviceType.Hardware, Me, CreateFlags.SoftwareVertexProcessing, present)
        Catch exDH As Exception
            MessageBox.Show("No dispone de soporte gráfico físico compatible con DirectX!!")
            Try
                device = New Direct3D.Device(0, DeviceType.Software, Me, CreateFlags.SoftwareVertexProcessing, present)
            Catch exDS As Exception
                MessageBox.Show("No dispones de soporte gráfico compatible con DirectX!!")
                Try
                    device = New Direct3D.Device(0, DeviceType.Software, Me, CreateFlags.SoftwareVertexProcessing, present)
                Catch exHR As Exception
                    MessageBox.Show("Lo siento, no es posible ejecutar DirectX en esta plataforma")
                    Me.Dispose()
                    Me.Close()
                End Try
            End Try
        End Try
...
De todas formas, no puedo decirte si funciona porque no tengo donde probarlo, o si? Bueno luego te cuento cuando lo pruebes.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
javi0unavailable



Registrado: 08 Feb 2012
Mensajes: 8

Mensaje Publicado: Lunes 13 Feb 2012 15:25

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

Disculpa la demora en responder.

Tengo las guest additions instaladas, pero digo voy a ver si las actualizo o instalo de nuevo. Al darle a instalar sale una casilla "Install Direct3D Support (experimental)" que para poder activarla necesitas entrar en safe mode. Vale, pues entro en modo seguro, lo instalo y al volver el error desaparece. Ahora se pinta un formulario vacío, ni sprite, ni formulario azul que probé jeje. He de decir que hay veces, en la ejecución, el VS se vuelve inestable y tengo que cerrarlo mediante el administrador de tareas.

Bueno parece ser que al estar en modo experimental... Podrías decirme: pues programa en un Host directamente. Sí, sería lo mejor, pero en clase sólo trabajamos con máquinas virtuales, hay un host Devian en el cual no tenemos permisos para nada y ese es el motivo de usar máquinas virtuales.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Lunes 13 Feb 2012 22:08

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

En máquinas virtuales solamente probé en Vista con Virtual PC 2007, con un servidor viejísimo de Win2003 que me dio muchísimos problemas, ya que el 2003 no está preparado para ejecutar aplicaciones gráficas, es un servidor Risa . En cambio si ejecuté en ordenadores de verdad viejos con XP con SP2 instalado, y aparte de tener que instalarles el dotnet 3.5 y DirectX8, sin tarjeta3D, si no con la misma tarjeta gráfica que integra la placa base, una intel vete a saber... y la aplicación se ejecutó sin problemas, incluso usando gráficos 3D.

Mmm.... mañana lo miro en una máquina virtual que tengo montada en Linux, pero claro, yo le tengo instalado con Wine, por unos experimentos que estaba haciendo sobre compilación cruzada con SDL con dotnet y MOno...

Como hasta mañana no puedo probar el tema máquina virtual Windows en Linux, en este caso una distro Ubuntu/Gnome actualizada, puesss... mientras podrías plantearte tranquilamente por la opción Java... Tiene gráficos, no soporta aceleración gráfica por hardware, mmmm... es sencillo, aquí tenemos ejemplos y tal, pero todo encaminado a gráficos 2D... (bájate si quieres y te instalas NEtBEans desde la página oficial de Oracle y lo vas tanteando, viendo ejemplos y mañana me dices)

Ventaja, es multiplataforma, tu juego podrá ser ejecutado tanto en Windows, como en Mac, o cualquier distro Linux con Java

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
javi0unavailable



Registrado: 08 Feb 2012
Mensajes: 8

Mensaje Publicado: Lunes 13 Feb 2012 23:13

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

Ya, JAVA es un lenguaje que me gusta. Pero el módulo lo ha orientado el profesor a VB.NET así que el proyecto tiene que ser en dicho lenguaje.
Mientras que estoy intentando conseguir que funcione lo de DirectX, estoy haciendo el proyecto de clase, el juego, con SDL, ya que se me echa el tiempo encima.
Pero aunque el proyecto en sí no lo haga con DirectX, ya que estoy, escucho toda la info que me estás dando y voy probando a ver si consigo que funcione, aunque solo sea por narices jaja.
Te agradezco el tiempo que gastas en esto. Responde cuando quieras no gastes tiempo de otras cosas para ver esto si no lo necesitas Guiño

Volver arriba
Ver perfil del usuario Enviar mensaje privado
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Martes 14 Feb 2012 22:01

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

Bueno después de muchas pruebas fallidas en mi distro, mi consejo es que uses para los gráficos System.Drawing.Drawing2D, que tiene la ventaja de funcionar bien con MONO 2.2. De esa forma se podrá ejecutar, no te garantizo al 100%, en máquinas con distros que soporten MONO. Y la desventaja es que *Drawing2D NO puede compararse en rendimiento con DirectX.

Usando VirtualBox 3.1.6 en Ubuntu 10, con Wine, con las guest adittion, etc.. no hay manera de que funcionen en un virtualizado Win2003, no se si será porque win2003 es un servidor y por eso no entra.. otra forma de comprobarlo no lo se..

Entonces quedamos así, programar con Mono 2.2 si quieres, sin los inconvenientes de la virtualización de un sistema Win32... Eso si, yo estoy muchísimo más cómodo usando el VS Express... Risa tonta

Opiniones, respuesta...

*Reeditado (me falla el teclado, son muchos años)



Ultima edición por WhiteSkull el Miércoles 15 Feb 2012 13:48; editado 1 vez
Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
javi0unavailable



Registrado: 08 Feb 2012
Mensajes: 8

Mensaje Publicado: Miércoles 15 Feb 2012 13:35

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

Buscaré información sobre MONO, ya que no lo había escuchado en mi vida. Aunque ponerse ahora a montar todo el entorno de nuevo para programar con MONO, la verdad es que da un poco de palo. Pero nunca se sabe en un futuro lo que se va a hacer así que está bien saberlo.

Un saludo

Volver arriba
Ver perfil del usuario Enviar mensaje privado
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Miércoles 15 Feb 2012 13:50

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

MONO es la alternativa compatible de dotnet en plataformas NO WINDOWS, aunque existe MONO para Windows.

http://www.mono-project.com/Main_Page

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
Jose Angel



Registrado: 18 Feb 2012
Mensajes: 1
Ubicación: Mexico

Mensaje Publicado: Sábado 18 Feb 2012 02:58

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

saludos
tengo una pequeña duda utilizando el draw2d del Sprite y el device.clear.
lo que pasa es que me e dado cuenta que en ocaciones al testear el juego desde el vb me sale el fondo de el color que le paso al .clear y solo sale el ultimo sprite que pinté pero solo en ocaciones muy rara vez pero nunca me ha salido ejecutandolo ya compilado :S o acaso es necesario un doble buffer para evitar que suceda aun que sea esa "rara vez"?

Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo
tatito rm



Registrado: 12 May 2012
Mensajes: 2

Mensaje Publicado: Sábado 12 May 2012 14:06

Título del mensaje: Re: Tutorial de DirectX para VB .NET (DirectX8+)

Responder citando

Buen día

Me gustaría saber como puedo hacer zoom y moverme a través de un mundo El programa esta en VB6 Gracias

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema Ir a página Anterior123Siguiente
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Sugerencia para desarrollar un sistema web, par...

Kris Programación Web en general 0 Lunes 18 Feb 2019 13:40 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Configuracion de Visual Studio Code para C/C++

Indaganster C, C#, Visual C++ 0 Sábado 02 Feb 2019 02:43 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Tutorial Python Rápido para Principiantes

Errodringer Python 0 Viernes 14 Sep 2018 19:38 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Consulta sobre un tipo de PLUGIN para insertar ...

Federico Jose Temas generales 1 Sábado 08 Sep 2018 18:57 Ver último mensaje
El foro no contiene ningún mensaje nuevo

ayuda ayuda para este codigo que me sale error ...

DiegoBV C, C#, Visual C++ 0 Jueves 02 Ago 2018 23:52 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,