Come animare in XNA

April 11

Come animare in XNA


XNA Game Studio (XNA) è un ambiente di programmazione sviluppato da Microsoft che consente di creare giochi complessi per computer, telefoni cellulari e console Xbox dall'interno della piattaforma di programmazione Visual Studio 2010. Animazione di sprite e modelli in XNA è importante perché una semplice animazione, bidimensionale (2-D) sprite, fa una grande differenza quando si includono nei tuoi giochi.

istruzione

1 Aprire Visual Studio 2010 e andare al costruttore del gioco XNA. Creare una nuova istanza della classe "AnimatedTexture" utilizzando questo codice di esempio:

AnimatedTexture SpriteTexture privato;

private const float Rotation = 0;
private const float Scale = 2.0f;
private const float Depth = 0.5f;
public Game1()
{

SpriteTexture = new AnimatedTexture (Vector2.Zero,
Rotazione, Scala, profondità); se ZUNE

TargetElapsedTime = TimeSpan.FromSeconds(1 / 30.0); finisci se

}

Si noti che il frame rate deve essere di 30 fotogrammi al secondo (fps), se si prevede di utilizzare l'animazione su Zune. In questo esempio, "(0,0)" è l'origine di texture. La struttura ha nessuna rotazione, è in scala "2" ed ha una profondità di "0,5".

2 Caricare il tessuto che contiene le quattro strutture e dividerlo in fotogrammi di animazione utilizzando questo codice di esempio:

Finestra finestra privato;
objPos Vector2 privati;
privato const int Frames = 4;
const int privato FramesPerSec = 2;
protected override LoadContent void ()
{

spriteBatch = new SpriteBatch(GraphicsDevice);
SpriteTexture.Load(Content, "objectanimated", Frames, FramesPerSec);
viewport = graphics.GraphicsDevice.Viewport;
shipPos = new Vector2(viewport.Width / 2, viewport.Height / 2);

}

La classe "AnimatedTexture" carica la consistenza e lo attira in fotogrammi. Questo esempio disegna due fotogrammi al secondo, per due secondi. Sostituire "objectanimated" con il nome del vostro bene sprite.

3 Determinare i fotogrammi di animazione per visualizzare utilizzando il metodo "Update". Utilizzare questo codice come un esempio:

protetta override void Update (GameTime GameTime)
{

float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;
//Add your game logic here.

SpriteTexture.UpdateFrame (trascorso);
base.Update (GameTime);

}
public void UpdateFrame (float trascorso)
{

if (Paused)
return;
TotalElapsed += elapsed;
if (TotalElapsed > TimePerFrame)
{
Frame++;
Frame = Frame % framecount;
TotalElapsed -= TimePerFrame;
}

}

metodo "UpdateFrame" del AnimatedTexture riceve i secondi trascorsi tra gli aggiornamenti e gestisce la visualizzazione dei diversi telai.

4 Disegna lo sprite nel metodo "Draw" del gioco utilizzando la funzione "SpriteBatch.Draw" sull'oggetto "AnimatedTexture". Utilizzare questo codice di esempio per disegnare corretta subrectangle della trama che contiene uno sprite:

protected override void draw (GameTime GameTime)
{

GraphicsDevice.Clear(Color.CornflowerBlue);
//Add your drawing code here

spriteBatch.Begin ();
SpriteTexture.DrawFrame (SpriteBatch, objPos);
spriteBatch.End ();
base.Draw (GameTime);

}
Stiratoio public void (SpriteBatch batch, Vector2 screenPos)
{

DrawFrame(batch, Frame, screenPos);

}
Stiratoio public void (SpriteBatch batch, int cornice, Vector2 screenPos)
{

int FrameWidth = myTexture.Width / framecount;
Rectangle sourcerect = new Rectangle(FrameWidth * frame, 0,
FrameWidth, myTexture.Height);
batch.Draw(myTexture, screenPos, sourcerect, Color.White,
Rotation, Origin, Scale, SpriteEffects.None, Depth);

}

5 Compilare e generare il progetto. Quando si esegue il progetto, si vedrà l'animazione creata con i quattro fotogrammi delle trama originale.