« Pygame/Chimp - Ligne par ligne » : différence entre les versions

Contenu supprimé Contenu ajouté
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
typo
Ligne 12 :
Ce tutoriel analyse le code bloc par bloc, expliquant comment le code fonctionne. Il sera également mentionné la façon dont le code pourrait être amélioré et quel contrôle d'erreur peut nous venir en aide.
 
Ceci est un excellent tutoriel pour les personnes qui étudient pour la première fois du code Pygame. Une fois Pygame complètement installé, vous pourrez trouver et exécuter vous-même la démo de ''chimp'' dans le répertoire des exempleexemples.
 
== Importer des modules ==
Ligne 31 :
Dans la ligne suivante, nous importons l'ensemble des modules de Pygame. Quand Pygame est importé, tous les modules appartenant à Pygame sont importés. Certains modules sont optionnels, s'ils ne sont pas trouvés, leur valeur est définie à <code>None</code>.
 
Il existe un module Pygame spécial nommé <code>locals</code>. Ce module contient un sous-ensemble de Pygame. Les membres de ce module utilisent couramment des constantes et des fonctions qui ont prouvésprouvé leur utilité à être incorporé dans l'espace de nom global de votre programme. Ce module de locales inclut des fonctions comme <code>Rect()</code> pour un objet rectangle, et plusieurs constantes comme <code>QUIT, HWSURFACE</code> qui sont utilisées pour interagir avec le reste de Pygame. L'importation de ce module de locales dans l'espace de nom global est complètement optionnel. Si vous choisissez de ne pas l'importer, tous les membres des locales sont toujours disponibles dans le module <code>pygame</code>.
 
Enfin, nous avons décidé d'imprimer un joli message si les modules <code>font</code> ou <code>sound</code> ne sont pas disponibles dans Pygame.
Ligne 192 :
La première ligne d'initialisation de Pygame nous épargne un peu de travail. Elle contrôle les modules Pygame importés et tente d'initialiser chacun d'entre eux. Il est possible de vérifier si des modules n'ont pas échoué pendant l'initialisation, mais nous ne nous tracasserons pas avec ça. Il est ainsi possible d'effectuer un contrôle plus fin et d'initialiser chaque module spécifique à la main. Ce type de contrôle n'est généralement pas indispensable, mais il est disponible si besoin.
 
Ensuite, nous définissons le mode d'affichage. A noter que le module <code>pygame.display</code> est utilisé pour contrôler tous les paramètres d'affichage. Dans cet exemple, nous demandons une simple fenêtre. Il existe un tutoriel complet sur le paramétrage du mode graphique, mais nous n'en avons pas réellement besoin, Pygame effectue déjà un bon travail pour nous en obtenant quelque chose qui fonctionne. Pygame trouve la meilleure profondeur de couleur sans que nous lui en fournissonsfournissions une.
 
Enfin nous définissons le titre de la fenêtre et désactivons le curseur de la souris de notre fenêtre. Très simple à faire, et maintenant nous avons une petite fenêrefenêtre noire prête à recevoir nos requêtes. En fait le curseur est par défaut visible, ainsi il n'y a pas réellement besoin de définir son état tant que nous ne voulons pas le cacher.
 
== Créer l'arrière-plan ==
Ligne 206 :
</syntaxhighlight>
 
Ceci crée pour nous une nouvelle surface qui est de la même taille que la fenêtre d'affichage. AÀ noter l'appel supplémentaire <code>convert()</code> après la création de la surface. La méthode <code>convert()</code> sans argument s'assure que notre arrière-plan est du même format que la fenêtre d'affichage, ce qui nous donnera des résultats plus rapiderapides.
 
Nous remplissons alors entièrement l'arrière-plan avec une couleur blanchâtre. La méthode <code>fill()</code> prend un triplet RGB en argument de couleur.
Ligne 243 :
Ceci ''blitera'' notre arrière-plan complet sur la fenêtre d'affichage. Le ''blit'' est lui-même trivial, mais qu'en est-il de la routine <code>flip()</code> ?
 
Dans Pygame, les changements de la surface d'affichage ne sont pas immédiatement visiblevisibles. Normalement, un affichage doit être mis à jour dans les zones qui ont changé pour les rendre visibles à l'utilisateur. Avec l'affichage par double-tampon (double buffer), l'affichage doit être interverti pour rendre les changements visibles. Dans cet exemple, la fonction <code>flip()</code> fonctionne parfaitement parce qu'elle manipule la zone entière de la fenêtre et gère les surfaces en simple et double tampon.
 
== Préparer les objets du jeu ==