Programmer un jeu vidéo en Python – Processing – chapitre 2.a

2 – Création du personnage

Modestement, nous allons créer un personnage qui aura, dans un premier temps, l’aspect d’un rectangle.

Il sera aisé de lui rajouter une texture par la suite, c’est à dire une image à la place du rectangle.

a. La notion de classe, ou les rudiments de la programmation orientée objet.

La programmation orientée objet (POO) n’est pas au programme de la spécialité ISN, mais certaines fonctionnalités qu’elle offre vont nous permettre un plus grand confort et une meilleure efficacité dans notre code. Nous allons donc en découvrir quelques facettes, mais gardez à l’esprit qu’il ne s’agit que d’une partie de ce qui constitue le paradigme orienté objet, que nous n’aborderons pas de façon générale.

Une classe peut être vue comme une manière commode de regrouper au sein d’une même variable, plusieurs variables (appelées attributs) ainsi que des fonctions (appelées méthodes)  permettant de modifier ces variables et d’interagir avec les autres objets du programme.

Prenons un exemple. Nous allons créer la classe personnage :

On peut voir que la classe contient trois méthodes :

  • __init__ est obligatoire et est appelée lors de la création d’un objet personnage. Elle permet d’initialiser les variables de la classe, ici nom, x, et y.

À l’intérieur de la classe, les variables internes (attributs) sont précédées, en python, du préfixe self.

Ainsi, self.x sera accessible depuis n’importe quelle fonction de la classe. C’est une sorte de variable « globale pour la classe ».

  • set_position(x,y) qui va modifier les valeurs de x et y
  • affiche(), qui affiche notre personnage.

Vous remarquerez dans la définition des fonctions le premier paramètre, self, qui est obligatoire et fait référence à l’instance de la classe, c’est à dire la variable de type classe qui aura été créée. Pour l’instant, voyez-le comme une obligation pour la définition d’une fonction à l’intérieur d’une classe.

Le fait de définir la classe personnage n’a fait que présenter la structure d’un personnage à l’interpréteur Python.

Il faudra créer un personnage, ce qui se fera dans la fonction setup( ) de Processing, grâce aux commandes :

La première ligne permet de rendre la variable globale, c’est à dire de la rendre accessible dans l’ensemble des fonctions du programme. Ce n’est pas forcément très « propre » (les puristes s’en plaindront, à juste titre), mais Processing n’offre pas vraiment d’alternative, surtout dans sa variante Python.

Pour afficher le personnage perso, il suffit d’appeler sa méthode affiche( ), ce qui se fait par :

Voyons ce que cela donne (appuyer sur le bouton Lecture pour lancer le programme, sur le crayon pour revenir au code) :

Remarquons l’utilisation des variables environment.width et environment.height qui donnent les dimensions de notre fenêtre processing dans processing.py. Dans l’EDI Processing, vous n’avez pas besoin de préfixer par environment.

On dit que perso est une instance de la classe.

On peut ainsi créer une deuxième instance de la classe personnage, c’est à dire un deuxième personnage.

Les deux personnages auront chacun leur propre méthode affiche( ) et leurs propres attributs x, y et nom :

Vous êtes maintenant prêts pour la suite de la création du personnage …

 

Auteur de l’article : Prof