Cours : Les bases d’XNA
III – Les différents overrides de XNA
1 – Définition d’un override :
2 – Définition des overrides XNA
I – Le GraphicsDeviceManager
Cet objet gère toute la partie graphique en rapport avec le device. Le device est la couche logicielle en liaison directe avec le GPU, et nous permet ainsi de faire abstraction de la marque du GPU, de son drivers, ou tout autre particularité qui nous obligerais a coder pour une carte graphique spécifique.
De plus il gère aussi les paramètres de création et contient l’objet GraphicsDevice, qui est l’objet device en lui-même.
II – Le ContentManager
Il gère ce qu'on appel le content pipeline, une nouveauté de la Beta2 de XNA.
Il y a de très nombreux articles en français sur le sujet, je ne vais donc pas tout redétailler, mais sachez que c'est ce qui nous permet de charger, des meshs, des sprites, etc, et ce, sans passer par des constructeurs ou pire encore : System.IO.
Quelques liens :
http://www.microsoft.com/france/vision/WebcastMsdn.aspx?eID=7651b49a-4c4d-43a8-89c4-5d584fbecb06
http://blogs.msdn.com/xna/archive/2006/08/29/730168.aspx
Pour charger un objet :
MonObject = content.Load<TypeDeMonObjet>("DossierDeMonObjetMonObjet");
Remarquez qu’on ne met pas l’extension de l’objet. De plus, pour être dans les assets à charger, l’objet doit être ouvert avec VS, c'est-à-dire, inséré directement dans le projet :

III – Les différents overrides de XNA
1 – Définition d’un override :
Remarque : Cette partie théorique est relativement compliquée, si vous ne désirez pas lire tout le chapitre, retenez qu’un override est un type de fonction qui est prédéfinis par une autre classe et qui sera appelée automatiquement.
Le modificateur override est nécessaire pour étendre ou modifier l'implémentation abstraite ou virtuelle d'une méthode, d'une propriété, d'un indexeur ou d'un événement hérité(e).
Une méthode override fournit une nouvelle implémentation d'un membre hérité d'une classe de base. La méthode substituée par une déclaration override est appelée méthode de base substituée. La méthode de base substituée doit avoir la même signature que la méthode override. Pour plus d'informations sur l'héritage, consultez Héritage.
Vous pouvez substituer une méthode statique ou non virtuelle. La méthode de base substituée doit être virtual, abstract ou override.
Une déclaration override ne peut pas changer l'accessibilité de la méthode virtual. Les méthodes override et virtual doivent avoir le même modificateur de niveau d'accès.
Vous ne pouvez pas utiliser les modificateurs new, static, virtual ou abstract pour modifier une méthode override.
Une déclaration de propriété de substitution doit spécifier exactement les mêmes modificateurs d'accès, type et nom que la propriété héritée, et la propriété substituée doit être virtual, abstract ou override.
2 – Définition des overrides XNA
Initialize() :
Cette fonction est un endroit réservé au chargement des ressources non graphiques, comme l’instanciation des classes utilitaires, ou autres.
Elle n’est appelée qu’une seule fois, après le chargement du GraphicsDeviceManager.
LoadGraphiscContent() et UnloadGraphicsContent() :
Ces deux fonctions sont respectivement réservées à la création des objets graphiques et à leur destruction.
Ils sont appelés respectivement après le chargement du ContentManager et juste avant sa destruction.
Update() :
Fonction qui permet de mettre à jour les informations concernant le jeu, gérer la logique de jeu, l'intelligence artificielle, le réseau, le son, l'entrée utilisateur, les collisions entre les objets;
Draw() :
Cette fonction est réservée au dessin. Elle est bien sûr appelée à chaque image
Attention, l’utilisation du mot « réservé » pour les overrides ne signifient pas que vous devez obligatoirement faire les actions conseillées, mais sachez qu’une optimisation est faite en arrière plan pour telle ou telle tâche, il serait dommage de ne pas en profiter.




Commentaires