Les bases de Pygame

Sur cette page tu trouveras : 

Le code de départ dans replit

Sur replit :

Créer un nouveau projet, en choisissant le template “Pygame”

Donne lui le titre base_pygame (car tu le garderas de côté)

Le code de départ dans replit permet de lancer un programme pygame, créer une fenêtre de jeu, et quitter le programme. 

Tu trouveras ci-dessous les explications de chaque ligne de code. A toi de le commenter pour te rappeler des choses qui te paraissent importantes

  • import pygame, sys : Cela importe les modules pygame et sys pour créer des jeux et manipuler différents aspects du runtime Python.
  • from pygame.locals import QUIT : Cette constante est utilisée pour gérer l’événement de fermeture de la fenêtre.
  • pygame.init() : Cela initialise Pygame. Cette étape est obligatoire pour exécuter le programme
  • DISPLAYSURF = pygame.display.set_mode((400, 300)) : Cela crée une fenêtre de jeu de 400 pixels de large sur 300 pixels de haut
  • Change la variable de suite et appelle la « fenetre » au lieu de displaysurf
  • pygame.display.set_caption(‘Hello World!’) : Cela définit le titre de la fenêtre à « Hello World! »
  • while True: : Cela crée une boucle infinie pour garder le jeu en cours d’exécution jusqu’à ce que l’utilisateur décide de fermer la fenêtre.
  • for event in pygame.event.get(): : Cette ligne est une boucle for dans laquelle on va coder tous les évènements. Les événements sont des actions comme des frappes de clavier, des mouvements de souris ou des clics sur des boutons.
  • if event.type == QUIT: : Cette condition vérifie si l’événement actuel est de type QUIT, c’est-à-dire si l’utilisateur a cliqué sur le bouton de fermeture de la fenêtre.
  • pygame.quit() : Cette commande est appelée lorsque l’utilisateur souhaite quitter le programme.
  • sys.exit() : Cela termine l’exécution du programme Python. Sans cela, le programme continuerait à s’exécuter même après avoir désinitialisé Pygame.
  • pygame.display.update() : Cela met à jour l’affichage de la fenêtre de jeu. Cette fonction doit être appelée pour que les changements graphiques que l’on programme soient visibles à l’écran.
A l’heure de cette ressource, le template pygame a un léger écart d’indentation :

L’indentation est l’espace que l’on met en début de ligne pour dire que le code est à prendre en compte dans une boucle, une condition, une méthode..

Un espace d’indentation est égal à : une fois la touche TAB ou 2 fois la touche espace.

On peut voir l’indentation en allant au bout d’une ligne comprenant une boucle ou une condition et en cliquant sur entrée.

  • Clique après les 2 points de la ligne While True:
  • Puis tape sur entrée
    • Tu verras l’indentation au niveau du trait | bleu clair
    • Pourtant le for de la ligne suivante est un peu avant.

Ce n’est pas contraignant pour le moment, mais ca le sera quand tu feras de gros programme.

=> Rectifie l’indentation en ajoutant un espace devant les lignes de la boucle for et toutes les suivantes

Les fonctions de base pygame

pygame.init() : initialise pygame et tous les modules nécessaires

pygame.display : Gère l’affichage dans la fenêtre de jeu

pygame.font : Gère les polices de caractères

pygame.mixer : Gère le son et la musique

pygame.event : Gère les événements comme les clics de souris et les pressions sur les touches

pygame.quit() : est appelé à la fin pour désinitialiser tous les modules Pygame et nettoyer les ressources

Les formes géométriques

Créer un rectangle

Méthode rect() de .draw

  • Le premier paramètre est la surface d’affichage donc notre fenetre
  • Puis le code couleur
  • Et ( le positionnement vertical et horizontal du rectangle dans le fenêtre puis largeur et hauteur)

Créer un cercle

Méthode circle() de .draw

  • Le premier paramètre est la surface d’affichage donc notre fenetre
  • Puis le code couleur
  • La position du centre du cercle (axe x, axe y)
  • puis le rayon

Créer une ellipse

Méthode ellipse() de .draw

  • Le premier paramètre est la surface d’affichage donc notre fenetre
  • Puis le code couleur
  • La position du centre de l’éllipse suivant l’axe X
  • puis suivant l’axe Y

Créer une ligne

Méthode line() de .draw

  • Le premier paramètre est la surface d’affichage donc notre fenetre
  • Puis le code couleur
  • La position du point de départ x et Y ou va commencer la ligne
  • puis la position du point de fin en x et y

Créer un polygone

Méthode polygon() de .draw

  • Le premier paramètre est la surface d’affichage donc notre fenêtre
  • Puis le code couleur
  • Puis on insère une liste python qui va contenir les différents points qui permettront de tracer le polygone

Créer une épaisseur à nos traits

Pour toute les figures

  • On peut créer une épaisseur de ligne, en ajoutant un chiffre à a la fin des paramètres, pour lui dire combien de pixels d’épaisseur on veut.
  • Ca a pour but de rendre la figure creuse, le centre était non touché par l’épaisseur (sauf la ligne que ca rend juste plus épaisse)
  • Sur cet exemple, on ajoute 4 pixels d’épaisseur à toutes les figures

Ajouter du son

Tu peux ajouter du son à ton jeu avec Pygame. Soit un son d’ambiance du jeu qui démarre en début de partie, et s’arrête lorsque l’on perd, ou des bruitages, quand tu entres en collision avec quelques chose, quand tu te déplaces, etc

Télécharger un fichier son .wav

Commence par te choisir le son (ou les sons) que tu souhaites mettre dans ton jeu. 

Rends toi sur le site sonothèque.org

C’est un site de bruitage libre de droits. 

  • Tu vas pouvoir choisir une recherche en francais (en haut à droite)
  • Puis cliquer sur tous les sons
  • Ou rechercher par mots clés si tu as une idée précise

Lorsque tu cliques sur un son : 

Tu peux l’écouter en cliquant sur le lecteur vert PLAY

Et si il te plait, tu peux le télécharger en format .wav en cliquant sur télécharger.

Upload ton fichier dans Replit

Renomme le nom de ton fichier en quelque chose de simplet et facile à retenir.

Pour cela, clique sur les 3 points en face de ton fichier, puis clique sur Rename

Programmer ton son dans ton jeu

Tout d’abord il te faut importer os, car nous allons nous en servir pour charger les fichiers audios dans notre jeu

Ensuite, initialise le mixer, juste en dessous de l’initialisation de Pygame.

Son emplacement est important !

Puis à l’endroit où tu initialises tes variables, tu vas créer celle qui va contenir ton fichier audio :

  • Crée une variable 
  • appelle la méthode pygame.mixer.Sound()
  • Joins le nom de ton fichier audio

Pour jouer le son, utilise la méthode play()

L’important est l’endroit où tu le positionnes : Ici, il est mis au tout début du jeu pour démarrer en même temps que celui-ci.

Teste voir si il est bien calé, et si il ne fait pas de boucle (son qui se multiplie). Cela peut arriver si il n’est pas au bon endroit, comme par exemple, si je le mets à chaque déplacement du serpent. Il va se relancer à chaque fois que je le déplace, donc au bout de 10 déplacements, j’aurais 10 fois la musique qui se joue en même temps, et en décalé car elle sera lancé au moment de chaque déplacement.

Pour stopper le son, utilise la méthode stop()

Encore une fois, l’important est de bien le positionner !

Sur cet exemple, il est positionner au début de la condition qui arrête la partie si on entre en collision avec un bord, et juste avant de relancer une nouvelle partie.

 

Retour en haut