Développement XNA pour la XBox et le PC
118
Sprite sprite;
Sprite sprite2;
Sprite sprite3;
public ChapitreSix()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
ServiceHelper.Game = this;
Components.Add(new KeyboardService(this));
sprite = new Sprite(new Vector2(100, 100), null, 0);
sprite2 = new Sprite(new Vector2(100, 100), null, MathHelper.PiOver2);
sprite3 = new Sprite(new Vector2(100, 100), null, -MathHelper.PiOver2);
}
3. Procédez comme dans la première étape pour l’origine de la rotation. Commencez
par vous occuper de la classe Sprite.
Vector2 origin = Vector2.Zero;
public Vector2 Origin
{
get { return origin; }
set { origin = value; }
}
public Sprite(Vector2 position, Rectangle? sourceRectangle, Color color, float
➥rotation, Vector2 origin)
{
this.position = position;
this.sourceRectangle = sourceRectangle;
this.color = color;
this.rotation = rotation;
this.origin = origin;
}
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(texture, position, sourceRectangle, color, rotation, origin,
➥Vector2.One, SpriteEffects.None, 0);
}
4. Pour tester les rotations en modifiant l’origine, modifiez l’instanciation de votre
deuxième sprite. En prenant le point de coordonnées (32, 32), placez l’origine au milieu
de la texture : le sprite tournera donc sur lui-même.
sprite2 = new Sprite(new Vector2(100, 100), null, Color.White, MathHelper.PiOver2,
➥new Vector2(32,32));
Le résultat de ce test est visible sur la figure 6-16.
=Labat FM.book Page 118 Vendredi, 19. juin 2009 4:01 16
118
Sprite sprite;
Sprite sprite2;
Sprite sprite3;
public ChapitreSix()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
ServiceHelper.Game = this;
Components.Add(new KeyboardService(this));
sprite = new Sprite(new Vector2(100, 100), null, 0);
sprite2 = new Sprite(new Vector2(100, 100), null, MathHelper.PiOver2);
sprite3 = new Sprite(new Vector2(100, 100), null, -MathHelper.PiOver2);
}
3. Procédez comme dans la première étape pour l’origine de la rotation. Commencez
par vous occuper de la classe Sprite.
Vector2 origin = Vector2.Zero;
public Vector2 Origin
{
get { return origin; }
set { origin = value; }
}
public Sprite(Vector2 position, Rectangle? sourceRectangle, Color color, float
➥rotation, Vector2 origin)
{
this.position = position;
this.sourceRectangle = sourceRectangle;
this.color = color;
this.rotation = rotation;
this.origin = origin;
}
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(texture, position, sourceRectangle, color, rotation, origin,
➥Vector2.One, SpriteEffects.None, 0);
}
4. Pour tester les rotations en modifiant l’origine, modifiez l’instanciation de votre
deuxième sprite. En prenant le point de coordonnées (32, 32), placez l’origine au milieu
de la texture : le sprite tournera donc sur lui-même.
sprite2 = new Sprite(new Vector2(100, 100), null, Color.White, MathHelper.PiOver2,
➥new Vector2(32,32));
Le résultat de ce test est visible sur la figure 6-16.
=Labat FM.book Page 118 Vendredi, 19. juin 2009 4:01 16
