Développement XNA pour la XBox et le PC
54
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.Black);
spriteBatch.Begin();
mage.Draw(spriteBatch);
guerrier.Draw(spriteBatch);
spriteBatch.End();
base.Draw(gameTime);
}
}
}
Vous pouvez ainsi imaginer une hiérarchie de classes : celles se trouvant en haut de la
pyramide sont généralistes et plus l’on descend, plus elles sont spécialisées (figure 3-11).
Imaginez toujours un monde fantastique, dans lequel personne n’est ordinaire ! Il est
donc possible de considérer que tous les habitants de ce monde sont des mages ou des
guerriers. Ainsi, la classe Human ne devrait que servir de base aux autres classes et ne plus
être directement instanciable. Ce concept se traduit en C# par le mot clé abstract.
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
namespace PremierProjetXNA
{
abstract class Human : Sprite
{
string name;
int health;
public Human(Vector2 position, string name, int health)
: base(position)
{
this.name = name;
this.health = health;
}
}
}
Figure 3-11
Un diagramme de classes
représentant notre exemple
=Labat FM.book Page 54 Vendredi, 19. juin 2009 4:01 16
54
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.Black);
spriteBatch.Begin();
mage.Draw(spriteBatch);
guerrier.Draw(spriteBatch);
spriteBatch.End();
base.Draw(gameTime);
}
}
}
Vous pouvez ainsi imaginer une hiérarchie de classes : celles se trouvant en haut de la
pyramide sont généralistes et plus l’on descend, plus elles sont spécialisées (figure 3-11).
Imaginez toujours un monde fantastique, dans lequel personne n’est ordinaire ! Il est
donc possible de considérer que tous les habitants de ce monde sont des mages ou des
guerriers. Ainsi, la classe Human ne devrait que servir de base aux autres classes et ne plus
être directement instanciable. Ce concept se traduit en C# par le mot clé abstract.
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
namespace PremierProjetXNA
{
abstract class Human : Sprite
{
string name;
int health;
public Human(Vector2 position, string name, int health)
: base(position)
{
this.name = name;
this.health = health;
}
}
}
Figure 3-11
Un diagramme de classes
représentant notre exemple
=Labat FM.book Page 54 Vendredi, 19. juin 2009 4:01 16
