Tutoriel python des jeux vidéo avec Pygam PREMIER PROGRAMME

Bienvenue dans le tutoriel python 3 dans la série des tutoriels : des jeux vidéo avec Python et Pygam.

tutoriel python

NOUS COMMENÇONS À TRAVAILLER


Pour commencer notre exploration de pygame nous aurons d’abord besoin d’un dossier pour enregistrer nos fichiers : je vous propose de créer un dossier “pygame” dans votre dossier “Documents”, afin que vous puissiez facilement enregistrer et retrouver vos fichiers. Pour éditer les programmes, vous pouvez utiliser IDLE (auquel je me référerai plus tard) ou, si vous savez l’utiliser, certains IDE plus avancés tels que Wing ou PyCharm. Vous pouvez taper le code ou, pour les programmes plus longs, le copier et le coller ; Je vous demanderai souvent, en tant que pratique, de faire des changements.

Je trouve très utile, comme méthode de travail, d’indiquer moi-même sous quel nom enregistrer vos fichiers. Lorsque vous trouvez une indication comme celle-ci :

Cliquez dans IDLE sur Fichier => Nouveau fichier. Lors de la première demande de sauvegarde, utilisez le nom que j’ai indiqué: de cette façon, nous pourrons nous référer à nos anciens programmes même après quelques leçons, en les mettant à jour au fur et à mesure que nous apprenons de nouvelles choses.

OUVRIR UNE FENÊTRE


Commençons maintenant avec le premier programme :

écrivons les lignes de code suivantes dans l’éditeur de texte (faites attention aux doubles parenthèses rondes dans # 4):

import pygame

pygame.init()
screen = pygame.display.set_mode((800, 600))

Lancez-vous et nous verrons, en plus de la fenêtre IDLE habituelle, une nouvelle fenêtre (que nous appellerons désormais la fenêtre pygame) : c’est notre premier pas dans le monde des graphismes !

A vrai dire ce n’est pas une étape très excitante : la fenêtre est toute noire, on peut la minimiser et la ramener sur le bureau avec le bouton en haut à droite. Cependant, si nous essayons de le fermer en cliquant sur le bouton avec la croix, nous obtiendrons une erreur et nous devrons fermer la fenêtre IDLE pour terminer le programme (ou utiliser le gestionnaire de tâches Windows en appuyant sur Ctrl Alt Del ensemble).

Avant de continuer, analysons ce que nous avons écrit :

Dans # 3, nous avons appelé la fonction init () de pygame : elle est utilisée pour initialiser tous les sous-modules et doit toujours être appelée avant toutes les autres fonctions de pygame ;
Dans #4 nous avons appelé la fonction set_mode() du sous-module display : cette fonction prend en paramètre un tuple de deux nombres (largeur et hauteur) et crée la fenêtre principale avec les dimensions assignées. Rappelons qu’en Python un tuple est une liste qui ne peut pas être modifiée et dont les éléments doivent être écrits entre parenthèses (c’est pourquoi il faut des doubles parenthèses : une parenthèse est pour la fonction et une pour le tuple).
On voit aussi, toujours au n° 4, que le résultat de la fonction est affecté à la variable screen. Mais qu’est-ce que la fonction a renvoyé ? Eh bien, c’est un objet de type Surface, c’est-à-dire un objet pygame qui représente une surface, et qui correspond à la zone de la fenêtre qui vient d’être ouverte. Dans la prochaine leçon, nous verrons plus en détail comment utiliser l’objet Surface, pour l’instant nous avons juste besoin de savoir que l’écran dans le programme représente notre fenêtre.

EXERCICE 1 : Créer des fenêtres d’autres tailles

LA LÉGENDE ET LA COULEUR


Comme je l’ai déjà dit, le sous-module d’affichage de pygame regroupe une série de fonctions qui contrôlent l’affichage de la fenêtre principale. Ajoutons maintenant ces lignes :

import pygame

pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Mon premier programme")
screen.fill((255, 255, 255))
pygame.display.flip()

Si nous donnons le Run, nous trouvons deux nouvelles fonctionnalités : la fenêtre est maintenant blanche et a changé de titre. Voyons pourquoi

  • Dans le #5 nous avons appelé la fonction set_caption() du sous-module display : elle sert à changer le titre de la fenêtre (caption en anglais) avec la chaîne que nous passons en argument ;
  • Dans le n° 6, nous avons peint la fenêtre en blanc. Si vous n’êtes pas familier avec le modèle RVB de codage des couleurs, vous pouvez consulter l’étude approfondie ici : rappelons cependant qu’en infographie une couleur est généralement désignée par un trièdre de 3 nombres de 0 à 255, qui en Python devient un tuple (par exemple (0, 0, 0) est noir et (255, 255, 255) est blanc). Voici le premier exemple de méthode appliquée à une instance d’objet (variable) : ici on applique la méthode fill() à notre variable screen, en écrivant screen.fill ((255, 255, 255)). La méthode fill() appliquée à une variable de type Surface prend en paramètre une couleur (un tuple de 3 nombres) et colore toute la surface avec la couleur donnée.
  • Dans #7 nous avons utilisé une autre fonction du sous-module display : le flip() qui sert à mettre à jour la fenêtre principale. Lorsque nous dessinons quelque chose, nous devons toujours appeler la fonction flip () pour que les modifications prennent effet.


Cette dernière procédure peut vous sembler assez ennuyeuse, mais c’est un comportement délibéré : si ce que l’on dessine était vu immédiatement, dans le cas de dessins assez complexes notre œil pourrait percevoir l’avancement du dessin et il y aurait des scintillements (scintillement du écran). Ainsi, à la place, il est possible d’effectuer des modifications graphiques même compliquées, puis d’afficher le résultat en une seule fois, ce qui améliore considérablement la qualité de la vidéo.

Notez qu’en Python le point est utilisé de deux manières différentes : il peut séparer le nom d’un module (ou sous-module) de la fonction dans laquelle il est contenu (comme dans # 3 # 4 # 5 # 7), ou le nom d’un une variable de celle d’un de ses attributs ou méthodes (comme dans # 6). Dans la suite nous utiliserons continuellement ces syntaxes et il faut être prudent et ne pas s’embrouiller si l’on veut bien comprendre le code que l’on écrit.

EXERCICE 2 : Remplacez la légende par un titre de votre choix
EXERCICE 3 : Expérimentez la coloration de la fenêtre avec différentes couleurs. Si vous lisez attentivement les informations détaillées sur les couleurs, vous devriez être en mesure de savoir quels nombres vous devez mettre pour obtenir une couleur donnée (par exemple : colorez la fenêtre avec : VERT, ROUGE, ROUGE FONCÉ, VIOLET, ORANGE) .

print() ET input()


Si vous essayez d’utiliser les fonctions Python que vous connaissez déjà, vous constaterez qu’elles n’écrivent pas dans la fenêtre que nous avons créée, mais continuent d’écrire dans la fenêtre IDLE. Pour écrire sur la fenêtre de pygame, nous devrons utiliser les fonctions spéciales de pygame lui-même.

Cependant il est possible pour le moment d’utiliser ces fonctions pour écrire des programmes “hybrides”, moitié en IDLE et moitié dans la fenêtre pygame. Rappelez-vous que lorsque nous exécutons la fenêtre IDLE I / O apparaît immédiatement, tandis que la fenêtre pygame n’apparaît que lorsque nous appelons la fonction set_mode ().

Une première utilisation simple est de faire en sorte que le programme se termine sans erreur. Ajoutez ces deux autres lignes à la fin du programme :


.   .   .
input("Appuyez sur ENTER pour terminer le programme")
pygame.quit()

Dans la première des deux nouvelles lignes, nous appelons l’entrée (), non pour prendre des données d’entrée, mais simplement pour arrêter le programme et attendre que nous appuyions sur ENTREE (en fait, le résultat de la fonction n’est affecté à aucune variable et se perd). Dans la seconde, nous appelons la fonction quit() de pygame. La fonction quit() “éteint” tous les modules pygame, ferme la fenêtre et revient au système d’exploitation sans erreur. Il doit toujours être appelé en dernier, sinon, comme nous l’avons vu, la fenêtre de pygame ne se fermera pas correctement. De cette façon le programme va ouvrir la fenêtre pygame, s’arrêter et la fermer quand on appuie sur ENTER : il faut dire que cette solution est décidément inélégante, mais elle est temporaire et on apprendra bientôt à fermer la fenêtre en cliquant sur la croix ( comme c’est le cas pour toutes les fenêtres Windows). Essayez, à titre expérimental, de commenter (en insérant un # au début) la ligne avec l’entrée() : que se passe-t-il ?

Dans les deux prochains exercices, vous devez d’abord fournir des données à Python (en utilisant l’entrée () dans la fenêtre IDLE), puis ouvrir la fenêtre pygame basée sur celles-ci.

EXERCICE 4. Créez un programme window2.py qui demande à l’utilisateur la légende à utiliser pour la fenêtre. Avant de créer la fenêtre pygame (avec set_mode ()), le programme doit demander le titre à l’aide de la fonction Python input () (et nous l’entrerons dans la fenêtre IDLE), puis il ouvrira la fenêtre pygame et définira la légende saisie .
EXERCICE 5 : Créez un programme window3.py qui demande à l’utilisateur trois nombres de 0 à 255 et colore la fenêtre avec la couleur correspondante (similaire à la précédente).
N’oubliez pas qu’en Python 3, pour accepter un nombre en entrée, vous devez écrire num = int (input (“…”)) car input () renvoie toujours une chaîne.

Autres articles

Exercices Corrigés en Gestion de Stock Dormant...
Exercice 1 : Détection du Stock Dormant Une entreprise a les...
Read more
Exercices Corrigés sur les Écarts Budgétaires
Exercice 1 : Calcul des Écarts sur Volume et Prix Contexte...
Read more
Guide : Implémenter get_iemedans des fichiers avec...
La fonction get_iemepermet de récupérer le i-ème élément d'un fichier...
Read more
AZ

Recent Posts

Guide : Rédaction d’un Projet de Reprise d’Entreprise

Cet article vous aidera à mieux rédiger un projet de reprise d'entreprise. Ci-après les étapes…

57 minutes ago

Fiche Méthode : Exprimer un Jugement sur Autrui

Exprimer un jugement sur une autre personne est une démarche délicate qui nécessite tact, respect…

2 heures ago

Exercices Corrigés en Gestion de Stock Dormant et en Transit

Exercice 1 : Détection du Stock Dormant Une entreprise a les données suivantes pour un…

2 heures ago

Stock en Transit : Définition, l’Identifier, et le Suivi dans Excel

Le stock en transit, aussi appelé stock en cours de transport, désigne les biens ou…

2 heures ago

Stock Dormant : Définition, l’Identier et le Suivi en utilisant Excel

Le stock dormant (aussi appelé stock obsolète ou inutilisé) désigne les articles ou les biens…

2 heures ago

Modèle de Fiche Hebdomadaire de Travail dans Excel

La fiche hebdomadaire de travail est un outil simple mais puissant pour organiser ses tâches,…

3 heures ago

This website uses cookies.