April 11
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.
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.