Développement XNA pour la XBox et le PC
110
this.sourceRectangle = sourceRectangle;
}
public Sprite(float x, float y, Rectangle? sourceRectangle)
{
position = new Vector2(x, y);
this.sourceRectangle = sourceRectangle;
}
public void LoadContent(ContentManager content, string assetName)
{
texture = content.Load(assetName);
}
public void LoadContent(ContentManager content, string assetName, int maxIndex)
{
texture = content.Load(assetName);
this.maxIndex = maxIndex;
}
public void Update(GameTime gameTime)
{
if (maxIndex != 0)
{
index += gameTime.ElapsedGameTime.Milliseconds * 0.001f;
if (index > maxIndex)
index = 0;
sourceRectangle = new Rectangle((int)index * sourceRectangle.Value.X,
➥sourceRectangle.Value.Y, sourceRectangle.Value.Width,
➥sourceRectangle.Value.Height);
}
}
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(texture, position, sourceRectangle, Color.White);
}
}
5. De retour dans la classe ChapitreSix, il vous reste à modifier la taille du rectangle
dans l’initialisation du sprite, changer l’appel à la méthode LoadContent() et ajouter
l’appel de la méthode Update().
La classe de test des feuilles de sprites
public class ChapitreSix : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
=Labat FM.book Page 110 Vendredi, 19. juin 2009 4:01 16
Précédent

- 131/366

Suivant