GUARDA LA PARTE 1 PRIMA DI PROSEGUIRE CON LA LETTURA Vediamo la classe codifica in C#. Si trova all'interno della cartella "GameEngine" del progetto (potete capirlo dal namespace)
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 { class SpriteBase { // Texture generale public Texture2D texture; /* Dati per l'animazione * AnimVel indica la velocità dell'animazione (in millesecondi) * AnimAttiva indica se l'animazione è attiva (true) o ferma (false). * Frame il frame al quale si trova * FrameTick E' usata per l'aggiornamento * FrameData E' il rettangolo da disegnare della frame * MaxFrame E' il numero di frame totali da visualizzare per quest'animazione [di default ho messo 3] * posizione Vettore2D per la posizione sullo schermo */ public int AnimVel = 80; public bool AnimAttiva = true; private int _Frame = 0; private double FrameTick = 0; public int MaxFrame = 3; protected Rectangle FrameData = new Rectangle (0, 0, 32, 32); public Vector2 posizione = new Vector2 (0, 0); /* Costruttore della classe */ public SpriteBase () { // Crea il FrameData di base FrameData = new Rectangle (0, 0, 32, 32); } /* Costruttore della classe * fWidth indica la larghezza della frame * fHeight indica l'altezza della frame */ public SpriteBase (Int32 fWidth, Int32 fHeight) { // Crea il FrameData di base FrameData = new Rectangle (0, 0, fWidth, fHeight); } /* Caricamento Texture * content indica il ContentManager dove caricare la texture * filename indica il nome del file aggiunto al content di gioco * senza l'estensione. */ Public void Carica (ContentManager content, String filename) { texture = content. Load < Texture2D> (filename); } /* Disegna la texture * spriteBatch indica un oggetto SpriteBatch per disegnare */ public void Disegna (SpriteBatch spriteBatch) { spriteBatch. Draw (texture, posizione, FrameData, Color. White); } /* Aggiornamento dello sprite * gameTime indica il tempo di gioco */ public void Update (GameTime gameTime) { // Se AnimAttiva = = false, allora non aggiornare l'animazione if (AnimAttiva = = false) { return; } // Bisogna andare al prossimo frame?? if (gameTime. TotalGameTime. TotalMilliseconds ? FrameTick > AnimVel) { if (Frame < MaxFrame) { Frame = Frame + 1; } else{Frame = 0; } FrameTick = gameTime. TotalGameTime. TotalMilliseconds; FrameData. X = Frame * FrameData. Width; } } // Frame corrente public int Frame { get { return _Frame; } set { _Frame = value; FrameData. X = Frame * FrameData. Width; } } } } Sweet Vengeance della Freank-Expo
Autore: Freank
|
News di attualità
Lunedi 24 verranno...
Lunedì 24 gennaio, alle ore 21, 00 verranno...
Colpo di scena in...
Quinta stagione di Dr. House, l'affascinante...
Lumoria, la...
Ne è passato di tempo dal vecchio "Halo:...
Se Cogne finisce...
Cristina Comencini ci riprova. Dopo " Lo...
Inter, Ranieri...
Claudio Ranieri aspetta con ansia il rientro...
|