Home > XNA

XNA - Une classe Sprite pour faciliter le développement

Introduction

Bonjour,

Au cours de cet article, nous allons simplement faire une classe qui nous permettra de créer et d'utiliser des sprites sans encombrer notre classe Game1. Comme vous l'avez vu dans le chapitre d'initiation à XNA, plusieures méthodes sont redondantes :

  • LoadContent() : pour obtenir une texture
  • Update(GameTime gameTime) {} : Permet de donner un mouvement, ou d'animer vos sprites
  • Draw(GameTime gameTime) {} : Affiche les sprites

Ainsi, pour éviter d'avoir à tout redéfinir à chaque fois, on commence par créer une nouvelle classe : Sprite.cs

 

Création de la classe Sprite

Pour commencer, il faut garder à l'esprit qu'un sprite est determiné par une position et une texture.

 

N'oubliez pas d'ajouter également les directives using correspondantes :

 

Ensuite, nous créeons le premier constructeur :

 

 

Celui ci est très simple car on determine uniquement la position sous forme de vecteur, mais on pourra, par la suite, en faire de plus complets, prenant en compte une échelle pour le redimensionnement, ou encore une teinte.

 

Maintenant, nous allons utiliser la méthode permettant de charger la texture, provenant d'une image.

 

 

Pensez aussi à ajouter la directive afin de pouvoir utiliser le Content Manager :

 

Definissons le mouvement dans Update :

Puis il ne nous reste plus qu'à afficher le sprite grâce à la méthode Draw :

 

Comme vous pouvez le voir, on utilise la texture, la position et également une couleur. La couleur spécifiée correspond à la modulation. Le fait de choisir la couleur blanche équivaut à ne pas utiliser la modulation.

 

Voila, donc, à l'heure actuelle la classe n'est pas très complète mais peut déjà être utilisée.

Utilisation de la classe

Pour la suite nous utiliserons une image d'un personnage de type stickman :

 

Il suffit d'ajouter l'image dans la Content Manager :

Et éventuellement, changer le texte dans le champ "Asset Name" pour pour l'utiliser.

 

Ensuite, il faut déclarer un objet stickman de type Sprite dans la classe Game1 :

Puis initialiser la variable dans la méthode prévue à cette effet : Initialize.

 

 

Ensuite, il faut donc utiliser la méthode LoadContent pour charger l'image choisie.

 

La chaine de caractère "stickman" correspond au champs "Asset Name" du Content Manager.

 

Utilisons la méthode Update pour donner les coordonnées du vecteur pour le mouvement :

 

Et pour finir, il ne reste plus qu'à utiliser stickman.Draw pour dessiner cet objet :

 

 

Voila donc pour résumer, une fois la classe Sprite créee, en seulement 3 lignes, nous pouvons afficher implémenter et afficher notre sprite qui se déplace horizontalement.

 

 

Aller plus loin

Certes, à l'heure actuelle, le personnage ne fait pas grand chose. Mais à partir de cette base, nous pouvons par exemple créer une classe héritée de Sprite qui aura des caractéristiques en plus, des evènements supplémentaires dans Update(GameTime gameTime), ou alors une gestion de collisons que n'aurais pas forcément tous les sprites.

Par exemple, nous pouvoir ajouter un getter et un setter de la variable position qui nous permettra de vérifier la position du sprites et de la modifier.

 

Conclusion

Au cours de cet article, vous avez vu comment créer et utiliser la classe Sprite.

Retrouver le code complet de ces deux classes à ces adresses :

 

XNA

Add comment




  Country flag

biuquote
  • Comment
  • Preview
Loading

captcha

*