XNA: el perquè de tot plegat

Parafrassejant el títol del mestre Monzó, duc uns dies pegant-li voltes a una cosa, la idea de fer un joc. No tinc massa temps, i estic fent massa coses a l'hora, però m'apasiona la idea d'un joc multiplataforma. Mai de la vida havia programat videojocs, la veritat, mai m'havia agradat. Però ara em pica el cuquet. Però bé com a introducció personal ja n'hi ha prou. He estat mirant, i vaig a provar amb XNA. El què més m'ha agradat és que el mateix codi (repetisc, el mateix codi), val per fer fer programes(jocs) en:
-Windows phone
-Windows
-XBOX

Anem a fer una demostració (basada en les tutorials de RB Whitaker):


Instal·lem el VS2010 (podem fer-ho amb la versió express, gratuita), i després del SP1, ens baixem i instal·lem el XNA. Una vegada instal·lat podrem elegir quin tipus de projecte volem:


Com no tenim (jo almenys) una XBOX, ens haurem de conformar amb un Microsoft Game ;)

Veurem que tenim una classe Game1, dins d'un namespace windowsGame2 (que deuriem de canviar en desenvolupaments seriosos). Anem a posar un fons de pantalla, afegim com a variable de classe:
private Texture2D background;
Ara afegirem al projecte, l'arxiu a carregarm el meu cas, el mural que va pintar la meua princesa, Content->Botó dret->Afegir element existent
Tornem al codi,  i busquem l'event LoadContent. En este event és on s'ha de fer la càrrega de les textures de tot el joc. Ahí afegirem la línia
  background = Content.Load<Texture2D>("mural");
és a dir que la variable background, carregarà una textura2d, bassant-se en el objecte mural de la secció Content (contingut). Si ens fixem, davant hi ha una línia que diu
spriteBatch = new SpriteBatch(GraphicsDevice);
la vairaible spriteBatch farà de finestra on dibuixarem tot.
Per últim ens quedarà dibuixar-ho. En l'event Draw, afegim el següent codi:

            spriteBatch.Begin();//comença a dibuixar
            spriteBatch.Draw(background, new Rectangle(0, 0, 800, 480), Color.White);
            spriteBatch.End(); //acaba

la línia central, és la interessant, dibuixa la textura background (l'hem carregada en l'event Load), com a posició inicial el centre de la pantalla, posem blanc, per què algun color s'havia de posar ;), executem i:






 Ara anem a provar si amb el mateix codi podem fer-ho per a windows phone, no vaig a explicar els motius però el XNA actualment només el tinc configurat en el VS 2012, per a la versió 8 de windows phone. En canvi el XNA per a ordinador, el tinc per a la versió VS 2010.
Ara afegirem la textura mural igual que hem fet abans:
i ara copiem i peguem el codi anterior, arranquem, esperem que arranque l'emulador, i veurem com carrega la imatge

Comentaris

Entrades populars d'aquest blog

Comparativa dels Sistemes Polítics Espanyol, Valencià i d'un partit polític. (II)

Clean Code... WTF? És realment viable?

Hui he vist la por als ulls