Iscriviti ora!   
 
Cura-Calvizie.NET  Cura-Calvizie.NET      2) Un RPG in XNA - Basi: Variabili Globali 
 



 Menù

Forum
Chat
Calvizie: domande e...

 Ultimi post forum

è meglio yughi -oh...
ragazzi rispondete numerosi a questa...

Tutto su Bim Bum...
TV anni '90, vi ricordate di Bim Bum Bam e...

Scanner nuovo sotto...
Sapreste trovarmi uno scanner? Non vorrei...

il vecchio castello
http://www.youtube.com/watch?v=hPs-1HH7Q8A o...

Ci saranno altre...
Cosa vuol dire quando una donna dice dopo...

Football Game!!!!
Io butto l'idea! è possibile fare un gioco...

Cosa mi aspetto dal...
Cosa mi aspetto dal domani...... Ua vita...

iDoser: la nuova...
Stamattina,guardando il telegiornale,sono...

Pic-nic!
Ne avete mai fatti? Dove siete andati? Chi...

11 settembre 2001:...
11 settembre 2001: arte sublime Circa...

Gli 883 belli o no?
Gli 883 belli o no? Guardate che qualche...

 


2) Un RPG in XNA - Basi: Variabili Globali


 
2) Un RPG in XNA - Basi: Variabili Globali

Prendiamo ad esempio lo spriteBatch e il content. Per caricare una texture dobbiamo usare il content, per disegnarla lo spriteBatch. Per disegnare/caricare un qualcosa dalla classe SpriteBase dichiarata prima, passiamo o il content o lo spriteBatch (che in questo caso sono passati per referenza) ogni volta. Ma, a mio parere, questo è un po' dispersivo perché dobbiamo passarli ogni volta per fare qualsiasi cosa. Quindi l'idea è quella di dichiararli in una zona del programma dove sono sempre accessibili. Ma questi 2 oggetti fanno parte della classe Game1 quindi, come fare? Semplice: utilizziamo una classe statica con attributi statici. In questo modo, senza creare un'istanza della classe, possiamo leggere/modificare gli attributi. Inserendo come attributi:

public static ContentManager gameContent;
public static SpriteBatch spriteBatch;

Possiamo richiamarli da tutto il programma. Quindi, assegnando a loro (rispettivamente) il content della classe Game1 e lo spriteBatch creato dentro Game1, possiamo richiamarli senza dover sempre passarli per referenza.
Questa classe possiamo usarla per tutte le cose che devono essere accessibili da tutte le parti. Io ad esempio, per ora, ho inserito un enumerazione per la direzione di un giocatore e 2 costanti utilizzate per indicare quanto è largo un Tile (in pixel).

Using System;
using System. Collections. Generic;
using System. Linq;
using System. Text;
using Microsoft. Xna. Framework;
using Microsoft. Xna. Framework. Content;
using Microsoft. Xna. Framework. Graphics;
namespace RPG_Example. GameEngine
{
// Definizioni delle direzioni per i personaggi
public enum Direzioni
{
GIU = 0,
DESTRA,
SINISTRA,
SU,
}
public static class VariabiliGlobali
{
// ContentManager e SpriteBatch (per non passarli sempre tra i parametri)
public static ContentManager gameContent;
public static SpriteBatch spriteBatch;
// Dati della mappa
public static int TileX = 64;
public static int TileY = 64;
}
}
Mentre nella classe Game1 inseriamo dentro il LoadContent ()
// Creiamo le variabili globali
VariabiliGlobali. GameContent = this. Content;
VariabiliGlobali. SpriteBatch = this. SpriteBatch;


Adesso possiamo usare questi 2 oggetti dove vogliamo

 


Sweet Vengeance della Freank-Expo




Autore: Freank

 Commenti
LEGGI TUTTI

News di attualità

Addio Leslie, per...
Un attore unico nel suo genere! Nato l'11...

Più belle con la...
La liposuzione è una tecnica di chirurgia...

Stereotipi nei...
Una cosa che bisogna assolutamente evitare...

Matrimonio:...
Nel giorno più importante della vita della...

10 IDEE PER LA...
Il 19 marzo e' la festa del papa', la...

 




pubblicità | siti partner | regole | visione | diritti | ufficio stampa | donazioni | scrivici
© 1999-2012 - P.IVA 02284690035 - Grafica, layout e contenuti sono di esclusiva proprietà di Cura-Calvizie.NET.

Web Design by ArcadiA Club

Powered by:
Spazi pubblicitari di alto livello