Pour commencer notre entrée dans le monde des Classes je vous propose d'attaquer tout de suite sur un petit thème.
Pourquoi pas Mario ?
Eh bien nous allons essayer de faire bouger Mario pour commencer.
Logiquement, puisque nous sommes sur la partie traitant de la POO, notre Mario sera un ... Objet.
La classe
Créons tout de suite notre "moule" de Mario.
Créez donc un nouveau projet, toujours Windows Forms. Ajoutez ensuite un nouvel élément, comme ce que nous avons fait pour une fenêtre mais cette fois choisissez :
C'est donc un fichier de classe.
Nommez tout de suite ce fichier en Mario par exemple.
Nous voilà donc avec notre classe "Mario" totalement vide, juste la déclaration de début et de fin.
L'interface
Retournons dans notre fenêtre et ajoutons-y quelques contrôles pour pouvoir commencer.
Donc j'ai juste ajouté un petit PANEL dans lequel j'ai spécifié la taille : 20x20 et la couleur de fond : Rouge.
J'ai ajouté en bas un petit bouton qui va nous permettre de déplacer ce panel. Pour le moment uniquement vers la droite.
Vous vous doutez que coder l'évènement qui va permettre au bouton de déplacer ce panel ne va pas être sorcier : quelques location à définir et le tour est joué.
Oui mais nous allons définir une classe qui va pouvoir s'adapter à d'autres situations (eh oui vous pourrez utiliser vos classes dans d'autres programmes.)
Réfléchissons un peu
Un léger moment de réflexion.
Pour le moment je vous ne demande pas de créer une classe vous-même, nous n'avons pas encore vu comment faire, nous allons le faire ensemble.
Je vous demande juste d'essayer de trouver comment rendre cet objet adaptable.
Mario doit être capable de se déplacer par "cases" pour le moment la taille de la case est définie par la taille du panel.
Donc si mon panel devient de 50x50, une case sera égale à 50x50 (les cases sont dans votre imagination mais vous pouvez placer des lignes de manière à faire une grille.
Notre classe ne pourra pas agir directement sur notre panel, c'est toujours le code qui l'a appelé qui va devoir le modifier, notre classe va donc devoir nous renvoyer des coordonnées. Les coordonnées de la nouvelle position de Mario.
Donc si vous avez suivi ma (fastidieuse) réflexion, nous allons devoir travailler avec des variables de type Point, nous aurions pu nous envoyer des int contenant la position en X et en Y mais la variable point rassemble le tout.
Nous allons aussi devoir passer à la classe la taille de notre panel, pour qu'elle puisse travailler dynamiquement, quelle que soit la taille de notre Mario.
Bon, trêves de commentaires, allons-y.
Notre classe
Dans notre fichier classe il va falloir tout d'abord définir un constructeur.
Rendez-vous dans le fichier Mario.vb (la classe) et insérez la déclaration du constructeur (avec New).
On se place dans le "Class Mario" et on inscrit :
Code : VB.NET
Voilà notre premier constructeur.
Ce constructeur de demande aucun argument. Nous ferions tout de même bien de spécifier à la classe la position originelle de notre Mario et sa taille.
Pour cela commençons par déclarer des variables en
Privé car elles ne seront accessibles qu'à partir de la classe.
Juste en dessous de Public Class Mario, déclarez :
Code : VB.NET | Private _CoordonneesActuelles As Point
Private _Taille As Size
|
J'ai donc les coordonnées actuelles de notre Mario de type
Point, et la taille de type
Size.
Pourquoi "_" devant tes variables ?
C'est une vieille habitude, lorsque je déclare des membres ou des attributs privés, je les précède d'un "_", vous n'êtes pas obligés de faire comme moi.
Ces variables sont déclarées en
Global elles seront donc accessibles de partout dans la classe.
Changeons notre constructeur de manière à demander en arguments ces valeurs :
Code : VB.NET | Sub New(ByVal PositionOriginelle As Point, ByVal TailleMario As Size)
_CoordonneesActuelles = New Point(PositionOriginelle)
_Taille = New Size(TailleMario)
End Sub
|
Et entrons les dans les variables.
Vu que point et size sont eux même des objets, il faut les instancier avec "New".
Nous voilà donc avec la taille et les coordonnées de notre Mario.