.NET Tutorial 27. XNA GS 3.1 en VB.NET. XNAvbNET Parte I

En este tutorial veremos como es posible usar XNA desde Visual Basic .NET (lol, pero que me estas contando!!!??)

A estas alturas de la "película" supongo que los lectores asiduos a este blog cononcen de sobras que es XNA. XNA es un "framework" desarrollado por Microsoft para desarrollar juegos para las plataformas PC, XBOX 360, ZUNE y con la última versión de XNA (la GS 4.0) para los nuevos telefonos móviles Windows Phone 7.

Y para muestra un botón:

Hay que tener en cuenta varias cosas:

1) Los juegos escritos con XNA a priori solo se pueden escribir en C#
2) Solo vas a encontrar documentación de ejemplos para C#
3) La ayuda (MSDN) solo es válida para C#
4) No podrás "subir" los juegos a la XBOX 360, ZUNE si el código está en VB.NET

Como veís, básicamente todo son "pegas". Si realmente quieres aprender XNA, aprende C# (es un consejo). Pero de todos modos, que diantres, esto es un blog sobre VB.NET. Vamos a ver que también es posible hacer cosas chulas con XNA desde VB.NET

Utilizaré Visual Studio 2008 (en su edición professional) con XNA GS 3.1.

La última versión hasta la fecha de XNA es la GS 4.0.

La GS 4.0 es solo compatible con Visual Studio 2010.

Además, la version GS 4.0 permite tener instalada la version GS 3.1

Lo que ya no estoy tan seguro es con la versión VB.NET "express" de Visual Studio 2008 se podrá hacer  lo que aqui expongo. Es algo que ya me comentaréis.

Bien, dicho esto, empecemos.

Lo primero que hay que hacer es crear un proyecto de XNA, ec C# ofcourse:


(Haz click para agrandar)

Nada más crear el proyecto se crea una plantilla "básica", con un archivo Game1.cs "básico":


(Haz click para agrandar)

Pues bien, si en lugar de usar C# queremos usar VB.NET hay que proceder de la siguiente forma.

Hay que añadir un nuevo proyecto, tal que así:

(Aquí es donde dudo que esto se pueda hacer con la versión express :S )

El tipo de proyecto ha de ser una "biblioteca de clases" (vamos, lo que siempre se ha conocido como dll):


(Haz click para agrandar)

Se creará por defecto una clase nueva (y vacia):


(Haz click para agrandar)

Lo siguiente que tenemos que hacer es añadir las referencias de XNA a este nuevo proyecto:

Una vez añadidas las referencias copiar el código que aparece abajo en la clase que se ha creado

Código completo de la clase en VB.NET: Aquí

Esta será la clase "básica" (algo parecido al Game1.cs de C#)

Ha continuación, generamos la dll: 

Luego eliminamos el archivo Game1.cs de la solución, ya que no vamos a usar C#, sino VB.NET:

En el proyecto de C# añadiremos una nueva referencia:

Dicha referencia será nuestro proyecto de VB.NET:

Como veís al añadir la referencia se añade a las "references":


(Haz click para agrandar)

Por último hay que cambiar un par de líneas en el archivo Program.cs (es la "entrada" del programa).

Al quitar al archivo Game1.cs tendremos estos errores:


(haz click para agrandar)

Hay que hacer un "using" de nuestro proyecto de VB.NET he inicializar la clase correcta:


(Haz click para agrandar)

Por último, daremos al "run" (o f5) y voilá:


(Haz click para agrandar)

Esa "pantalla" en azul es el resultado del código que está en la clase de VB.NET.

Espero que lo disfruteís. Haremos cosas grandes a partir de ahora 😉

 

Saludos.
mov eax,ollydbg; Int 13h 

 

Descargar código fuente del .XNAvbNET Tutorial 1
(1.28 MB. Visual Studio 2008 Professional / XNA GS 3.1)

 

.NET Tutorial 26. Creando cajas de texto «autoexplicativas»

En el Tutorial 18 vimos como crear propiedades personalizadas a un control.

En este caso os mostraré como crear un "textbox" que muestra un mensaje cuando no hay nada escrito dentro de él. Algo parecido a la pantalla de login de Windows Vista / 7:

O también algo parecido a la pantalla de inicio de sesión del Windows Messenger:

Como veréis, en las dos imágenes anteriores, en las cajas de texto, cuando éstas están vacias se muestra "lo que se debe escribir" en ellas, ya bien sea "Password", "Escribe tu contraseña" o lo que sea.

Pues bien, manos a la obra.

Crearemos una nueva clase, a la que he llamado OllydbgTxtBOX donde heredaremos el control TextBox con la instrucción que ya vimos en el tutorial 18: Inherits TextBox

En nuestra nueva "caja de texto" hemos añadido 3 nuevas propiedades:

TextVacio, TextVacioColor y TextVacioEnCursiva

Una vez tenemos ya la clase, compilamos el proyecto y ya tendremos listo nuestro nuevo control:

Arrastramos el control al formulario y listo:

Al ejecutar el proyecto, vemos que efectivamente, mientras en la caja de texto no no se ha escrito nada, se muestra el texto que hay en la propiedad "TextVacio" y que cuando escribimos lo que sea dicho texto desaparece y se muestra lo que escribimos:

Por último, aunque creo que es obvio, estas tres nuevas propiedades se pueden cambiar en tiempo de ejecución mediante código. Me explico. Si por ejemplo, nuestro nuevo "textBox" se llama OllydbgTxtBOX1 podemos escribir en código:

OllydbgTxtBOX1.TextVacio = "lo que sea"

La clase OllydbgTxtBOX completa la podeis encontrar aqui: OllydbgTxtBOX.vb

 

Saludos.
mov eax,ollydbg; Int 13h

Espiando a la vecina del quinto

Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsaneuripidis in, eum liber hendrerit an. Qui ut wisi vocibus suscipiantur,quo dicit ridens inciderint id. Quo mundi lobortis reformidans eu,legimus senserit definiebas an eos. Eu sit tincidunt incorruptedefinitionem, vis mutat affert percipit cu, eirmod consectetuersigniferumque eu per. In usu latine equidem dolores. Quo no falli virisintellegam, ut fugit veritus placerat per.

Ius id vidit volumus mandamus, vide veritus democritum te nec, ei eosdebet libris consulatu. No mei ferri graeco dicunt, ad cum veriaccommodare. Sed at malis omnesque delicata, usu et iusto zzrilmeliore. Dicunt maiorum eloquentiam cum cu, sit summo dolor essent te.Ne quodsi nusquam legendos has, ea dicit voluptua eloquentiam pro, adsit quas qualisque. Eos vocibus deserunt quaestio ei.


(haz clic para agrandar)


(haz clic para agrandar)

Blandit incorrupte quaerendum in quo, nibh impedit id vis, vel nonullam semper audiam. Ei populo graeci consulatu mei, has ea stet modusphaedrum. Inani oblique ne has, duo et veritus detraxit. Tota ludusoratio ea mel, offendit persequeris ei vim. Eos dicat oratio partem ut,id cum ignota senserit intellegat. Sit inani ubique graecis ad, quandograecis liberavisse et cum, dicit option eruditi at duo. Homerosalutatus suscipiantur eum id, tamquam voluptaria expetendis ad sed,nobis feugiat similique usu ex.


(haz clic para agrandar)


(haz clic para agrandar)

Eum hinc argumentum te, no sit percipit adversarium, ne qui feugiatpersecuti. Odio omnes scripserit ad est, ut vidit lorem maiestatis his,putent mandamus gloriatur ne pro. Oratio iriure rationibus ne his, adest corrumpit splendide. Ad duo appareat moderatius, ei falli tollitdenique eos. Dicant evertitur mei in, ne his deserunt perpetuasententiae, ea sea omnes similique vituperatoribus. Ex mel erremintellegebat comprehensam, vel ad tantas antiopam delicatissimi, totaferri affert eu nec. Legere expetenda pertinacia ne pro, et pro impetuspersius assueverit.


(haz clic para agrandar)


(haz clic para agrandar)

Ea mei nullam facete, omnis oratio offendit ius cu. Doming takimatarepudiandae usu an, mei dicant takimata id, pri eleifend inimicuseuripidis at. His vero singulis ea, quem euripidis abhorreant mei ut,et populo iriure vix. Usu ludus affert voluptaria ei, vix ea errordefinitiones, movet fastidii signiferumque in qui.

Vis prodesset adolescens adipiscing te, usu mazim perfecto recteque at,assum putant erroribus mea in. Vel facete imperdiet id, cum an librisluptatum perfecto, vel fabellas inciderint ut. Veri facete debitis eavis, ut eos oratio erroribus. Sint facete perfecto no vel, vim idomnium insolens. Vel dolores perfecto pertinacia ut, te mel meis ullumdicam, eos assum facilis corpora in.

Mea te unum viderer dolores, nostrum detracto nec in, vis no partemdefiniebas constituam. Dicant utinam philosophia has cu, hendreritprodesset at nam, eos an bonorum dissentiet. Has ad placerat intellegamconsectetuer, no adipisci mandamus senserit pro, torquatos similiquepercipitur est ex. Pro ex putant deleniti repudiare, vel an aperiamsensibus suavitate. Ad vel epicurei convenire, ea soluta aliquiddeserunt ius, pri in errem putant feugiat.

Saludos.
mov eax,ollydbg; Int 13h

 

Descargar código fuente del .NET Tutorial 25
(487 KB. Visual Studio 2008)