Comment Animer dans XNA

03/30/2013 by admin

Comment Animer dans XNA


Le XNA Game Studio (XNA) est un environnement de programmation développé par Microsoft qui vous permet de créer des jeux complexes pour les ordinateurs, les téléphones mobiles et les consoles Xbox à partir de la plate-forme de programmation Visual Studio 2010. Animer sprites et des modèles dans XNA est important car une animation en deux dimensions (2-D) sprite simple, fait une grande différence lorsque vous incluez dans vos jeux.

Instructions

1 Ouvrez Visual Studio 2010 et aller au constructeur du jeu XNA. Créer une nouvelle instance de la classe "AnimatedTexture" en utilisant cet exemple de code:

SpriteTexture de AnimatedTexture privé;

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

SpriteTexture = new AnimatedTexture (Vector2.Zero,
Rotation, échelle, profondeur); si ZUNE

TargetElapsedTime = TimeSpan.FromSeconds(1 / 30.0); fin si

}

Notez que le taux de trame doit être de 30 images par seconde (fps) si vous prévoyez d'utiliser votre animation sur Zune. Dans cet exemple, "(0,0)» est l'origine de la texture. La texture a pas de rotation, est à une échelle de "2" et a une profondeur de «0,5».

2 Charger la texture contenant les quatre cadres et le diviser en images d'animation en utilisant cet exemple de code:

viewport viewport privé;
objPos vector2 privé;
const int privé Frames = 4;
const private int 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 catégorie "AnimatedTexture" charge la texture et la tire dans des cadres. Cet exemple dessine deux images par seconde, pendant deux secondes. Remplacer "objectanimated" avec le nom de votre sprite actif.

3 Déterminer les images d'animation pour afficher en utilisant la méthode "Update". Utilisez ce code comme un exemple:

Mise à jour protégée override void (GameTime gameTime)
{

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

SpriteTexture.UpdateFrame (écoulé);
base.Update (gameTime);

}
public void UpdateFrame (float écoulé)
{

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

}

"UpdateFrame" La méthode de AnimatedTexture reçoit les secondes écoulées entre les mises à jour et gère l'affichage des différents cadres.

4 Dessinez le sprite dans "Dessiner" la méthode du jeu en utilisant la fonction "SpriteBatch.Draw" sur l'objet "AnimatedTexture". Utilisez cet exemple de code pour dessiner correcte de la sous-rectangle texture contenant un 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);

}
DrawFrame public void (SpriteBatch lot, Vector2 screenPos)
{

DrawFrame(batch, Frame, screenPos);

}
DrawFrame public void (SpriteBatch lot, cadre int, 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 Compiler et construire le projet. Lorsque vous exécutez le projet, vous pourrez voir l'animation créée avec les quatre cadres de votre texture originale.

Articles Liés