Posts tagged preparazione
E Questo Codice? – Inizio e Preparazione – XNA Tutorials
dic 27
Proprio adesso stavo scrivendo il primo articolo della sezione Grafica e stavo pensando: “cavolo, non ho scritto niente di generale riguardo alla struttura del codice?”. Certo, su internet si trovano tonnellate di documentazioni a riguardo, e sullo stesso progetto generato automaticamente troviamo un sacco di commenti utili, se si mastica un pò d’inglese.
Ma vogliamo fare le cose per bene (e io vorrei anche iniziare ad usare sto plugin wordpress per il codice XD) per cui ecco cosa ci ritroviamo davanti all’avvio, nella scheda “Esplora Soluzione”:

Si, il gioco si chiama “GiocoDiProva”. Non saltatemi addosso per l’eccessiva originalità.
Comunque sia, prima di tutto apriamo il file “Program.cs”:
using System;
namespace GiocoDiProva
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main(string[] args)
{
using (Game1 game = new Game1())
{
game.Run();
}
}
}
}
Questo che vedete è il punto d’ingresso del programma: essendo totalmente ad oggetti il nostro approccio, creiamo un oggetto di tipo Game1 (che rappresenta il nostro gioco) e lo avviamo con il metodo Run(). Niente di più semplice, ma considerate che questo file almeno adesso non lo toccheremo minimamente.
Le cose cambiano per il file Game1.cs, che contiene la definizione della nostra classe principale:
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;
namespace GiocoDiProva
{
/// <summary>
/// This is the main type for your game
/// </summary>
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}
/// <summary>
/// Allows the game to perform any initialization it needs to before starting to run.
/// This is where it can query for any required services and load any non-graphic
/// related content. Calling base.Initialize will enumerate through any components
/// and initialize them as well.
/// </summary>
protected override void Initialize()
{
// TODO: Add your initialization logic here
base.Initialize();
}
/// <summary>
/// LoadContent will be called once per game and is the place to load
/// all of your content.
/// </summary>
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
// TODO: use this.Content to load your game content here
}
/// <summary>
/// UnloadContent will be called once per game and is the place to unload
/// all content.
/// </summary>
protected override void UnloadContent()
{
// TODO: Unload any non ContentManager content here
}
/// <summary>
/// Allows the game to run logic such as updating the world,
/// checking for collisions, gathering input, and playing audio.
/// </summary>
/// <param name="gameTime">Provides a snapshot of timing values.</param>
protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
// TODO: Add your update logic here
base.Update(gameTime);
}
/// <summary>
/// This is called when the game should draw itself.
/// </summary>
/// <param name="gameTime">Provides a snapshot of timing values.</param>
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
base.Draw(gameTime);
}
}
}
Non andate in stallo subito, in realtà le cose sono molto semplici! Come prima cosa, dovete comprendere che l’evolversi del nostro gioco, concettualmente, si può riassumere in due “parti”, escludendo il momento in cui carichiamo le risorse.
Per prima cosa, la logica del gioco deve essere aggiornata. Per logica del gioco si intende tutto quell’insieme di variabili ed in generale operazioni da fare che possono tradursi, in parole povere, al capire se un pulsante sulla tastiera è premuto (facendo per esempio muovere il nostro alter-ego virtuale), oppure eseguire dei calcoli (per una battaglia nel nostro gioco di ruolo) e così via.
Dopo la fase di aggiornamento della logica, che chiameremo Update, tutto questo groviglio di dati deve essere disegnato a schermo per rendere il tutto percepibile dal giocatore. Tutto l’insieme delle operazioni legate al disegno le possiamo raggruppare in quella che è la parte, appunto, di disegno, o Draw in inglese.
E che metodi abbiamo appena visto?
Il metodo Update:
protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
// TODO: Add your update logic here
base.Update(gameTime);
}
All’avvio del progetto, ovviamente, il metodo sarà quasi vuoto, in quanto non abbiamo ancora definito nulla. Ed ecco che compare anche il metodo Draw:
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
base.Draw(gameTime);
}
concettualmente ci siamo, vero? L’istruzione che vedete in Draw, invece, serve a colorare la nostra schermata con un colore a scelta dell’utente. Se cambierete colore, scegliendone un’altro da passare come parametro, cambierà quindi quello della schermata.
(Click per Ingrandire)
Lo so, come inizio non è molto eccitante, ma non vi aspettate che il gioco si faccia da solo
Installazione dei programmi – Inizio e Preparazione – XNA Tutorials
dic 26
Adesso che abbiamo scaricato i nostri file e il necessario per iniziare, ovviamente, dobbiamo installare un pò tutto. Come prima cosa quindi avvieremo il setup del Visual C# 2008 Express Edition. Una volta avviato dovremo aspettare qualche secondo per il caricamento dei componenti.
Successivamente, ci ritroveremo davanti ad una schermata di installazione classica, nella quale dovremo andare avanti. Incontreremo anche una schermata relativa ai prodotti facoltativi da installare, simile a questa:
(Click per Ingrandire)
Se è la prima volta che lo installate avrete più opzioni tra le quali scegliere: tralasciando il resto delle descrizioni, vi consiglio di installare una copia della documentazione MSDN sul disco fisso, in modo tale da avere sempre un riferimento anche senza una connessione ad internet.
Dopo aver proseguito ci ritroveremo quindi nella schermata di download: potrete vedere con i vostri occhi il programma che creerà una lista di applicazioni da scaricare, le scaricherà una ad una e le installerà sul sistema. Una volta terminate queste operazioni, avremo finito con il Visual C#.
Passiamo quindi all’XNA Game Studio. Apriamo il file “XNAGS31_setup.exe” ed ecco la schermata che ci si porrà davanti:
(Click per Ingrandire)
Da questo momento in poi il discorso sarà lo stesso del Visual C#. L’installazione è automatica e quindi ci basterà cliccare su “Next” quando necessario, scegliendo in un passaggio le modalità di comunicazione dei giochi realizzati con il framework. A voi la scelta di questi parametri.
Una volta finito il processo di installazione avremo tutto il materiale pronto per l’uso. A questo punto non ci rimane che avviare Visual C# 2008 Express Edition e proseguire al prossimo articolo…
Download dei files necessari – Inizio e Preparazione – XNA Tutorials
dic 25
Il titolo dice tutto: come prima cosa dobbiamo prendere tutti i programmi di cui avremo bisogno, installarli e quindi iniziare a lavorare. Il download dei files a noi necessari è veramente semplice e non richiede operazioni complicate. Come prima cosa, andiamo su
http://creators.xna.com/it-IT/downloads
la pagina di download ufficiale di tutti i programmi (e relativi prerequisiti) che utilizzeremo nello sviluppo del nostro gioco. Al momento in cui scrivo, questi sono i downloads messi a disposizione nella pagina:
- XNA Game Studio 3.1 (che utilizzeremo durante i nostri tutorials)
- XNA Game Studio 3.1 Documentation
- Visual C# Express Edition
- DirectX SDK
- DirectX Runtime Web Installer

Cliccando sulla voce di download di XNA Game Studio, verremo indirizzati alla pagina del download vera e propria, su microsoft.com/downloads. La schermata che vi dovreste trovare davanti è questa:
(Click per ingrandire)
basterà cliccare sul pulsante “Download” per iniziare immediatamente il download di questo primo componente. Ma proseguiamo, le cose non finiscono qui.

Le librerie e i file della guida in linea saranno essenziali per lo sviluppo del vostro gioco o programma con XNA Game Studio. Molto spesso infatti sarà necessario andare a cercare informazioni per un metodo, una proprietà oppure una classe messa a disposizione dal Framework. Qui c’è poco da dire e nulla da installare, la documentazione è tranquillamente accessibile da internet.
Una copia della guida, inoltre, sarà installata sul proprio pc in modo tale da essere consultabile anche in assenza di collegamento ad internet.

Visual C# 2008 Express Edition è la versione gratuita dell’ide Microsoft dedicato al C#. Non c’è bisogno che ve ne parli in quanto penso che un minimo lo conosciate già. Ma vediamo come scaricarlo. Quando cliccheremo sul link riportato, verremo redirezionati sulla home page delle versioni Express di Visual Studio. Scorriamo la pagina, nella quale potremo dare un’occhiata ai vari prodotti della suite. Una volta che troverete la voce relativa al Visual C# (come nell’immagine sotto), basterà selezionare l’Italiano come lingua e poi cliccare su Download.

Una volta che avvierete il file scaricato, non vi preoccupate di eseguire altre operazioni, in quanto l’installer si occuperà di installare tutti i prerequisiti necessari. Probabilmente, nel caso non sia presente sulla macchina, verrà installato anche il .NET Framework più recente.
Ora, già con questi componenti installati non dovreste avere molti problemi: in molti casi i runtime directx sono già installati e nel caso non lo siano vi verranno richiesti.
Introduzione – Inizio e Preparazione – XNA Tutorials
dic 25
Lo avevo scritto qualche tempo fa e l’avevo “promesso” per cui eccomi qua. In quest’ultimo periodo ho provato un pò di tutto, ho cercato qualcosa di valido per lo sviluppo del mio attuale progetto. Sono partito dall’SDL.NET ma per via di alcuni limiti l’ho scartato. Sono passato allora ad Unity, interessantissimo progetto totalmente free. Tuttavia il mio obiettivo attuale non è il 3D, allora ho ripiegato (stavolta però pagando quasi 100€ tra licenze ed editor) su Torque Game Builder.
E’ potente, è buono, decisamente utile in tutte le sue funzioni ma ancora una volta ho voluto fare il piccioso e, ahimè, complicarmi un pò le cose. Alla fine sono tornato su XNA, che avevo già utilizzato l’anno scorso per un altro miniprogetto scolastico.
Quindi eccomi, a parlare un po di XNA e delle sue funzionalità, degli strumenti che mette a disposizione. Non starò qui a fare un discorso puramente tecnico, anche perchè non ho le competenze necessarie e l’esperienza adatta, da bravo studente che sono.
Ogni critica (purchè costruttiva) è ben accetta e magari può contribuire a migliorare il materiale che voglio offrire. Spero che a qualcuno possa essere utile ciò che scrivo.
Buona Lettura,
Francesco







Ultimi Commenti