Pygame

Une méthode très simple consiste à utiliser l’IDE Thonny (IDE veut tout simplement dire Integrated Development Environment et donc Environnement de Développement Intégré en français).

Thonny se télécharge librement et gratuitement ici : https://thonny.org

Une fois que vous avez ouvert l’application :

  1. Aller dans le menu ‘Tools’, puis ‘Manage packages…’

  2. Saisir pygame dans la zone prévue à cet effet puis cliquer sur le bouton ‘Find package from PyPi’

  3. Cliquer sur le bouton ‘Install’ pour installer la dernière version stable disponible

  4. Fermer la fenêtre, c’est fait ! 

Pour vérifier que pygame a bien été installé, il suffit de saisir import pygame dans la fenêtre du Shell (celle du bas !). Vous devez obtenir la réponse ci-dessous :


Nous allons afficher une petite fenêtre avec un fond noir dans laquelle nous allons écrire les mots ‘Top-sciences !’ en jaune :

Vous pouvez télécharger le code complet :

Quelques explications :

  1. Tout d’abord, il faut appeler les modules que nous allons utiliser :

    import pygame
    import sys


    import pygame
    :

    on importe tous les modules présents dans la bibliothèque Pygame.

    import sys
    :

    la même chose pour la bibliothèque sys que nous aurons besoin de charger pour pouvoir quitter python proprement à la fin du script.

  2. Ensuite, il va falloir définir une seule fois les paramètres de ce que nous souhaitons afficher :

    # Cette partie du code doit être lancée une seule fois
    pygame.init()
    window = pygame.display.set_mode((600,300))
    myfont = pygame.font.SysFont(“Arial”, 60)
    label = myfont.render(“Top-Sciences !”, True, (255, 255, 0))
    clock = pygame.time.Clock()
    FPS = 30


    Regardons les différentes lignes dans le détail :

    pygame.init()
    :

    On remet pygame à zéro (initialisation)

    window = pygame.display.set_mode((600,300)) :
    Premièrement, nous déclarons une variable que nous appelons ‘window’.
    Nous appelons ensuite la fonction set_mode() contenue dans le module “display” de Pygame.
    Cette fonction prend en paramètre un tuple contenant la largeur et la hauteur de la fenêtre voulue. Oui, c’est un bien un tuple, et non pas deux arguments différents, il est donc nécessaire de mettre les parenthèses !
    Un tuple, comme vous le savez, c’est une liste qui est immuable. Une fois créé, on ne peut y ajouter ou y supprimer des objets.

    myfont = pygame.font.SysFont(“Arial”, 60) :

    Nous déclarons une variable qui s’appelle myfont.
    Nous appelons ensuite la fonction SysFont() contenue dans le module “font” de Pygame.
    Et nous spécifions la police et sa taille.

    label = myfont.render(“Top-Sciences !”, True, (255, 255, 0)) :

    Nous déclarons une variable qui s’appelle label.
    Nous appelons ensuite la fonction render() pour la variable myfont créé précédemment.
    Et nous spécifions le reste :
    – Le texte à afficher (sur une seule ligne)
    – L’antialiasing (mettre à True pour que ce soit plus joli !)
    – La couleur (ici jaune = mélange de rouge et de vert)

    clock = pygame.time.Clock()
    FPS =30 :

    Nous déclarons une variable qui s’appelle clock et une autre qui s’appelle FPS
    Nous appelons ensuite la fonction Clock() contenue dans le module “time” de Pygame.
    Cette fonction va nous permettre de définir le nombre d’affichages de notre rendu final par seconde. FPS étant égal à 30, nous rafraichirons 30 fois par seconde, c’est ce que l’on appelle le framerate.

  3. Il faut laisser la possibilité à l’utilisateur de fermer la fenêtre :

    while True:
    #permet à l’utilisateur de fermer la fenêtre
    for event in pygame.event.get():
    if event.type == pygame.QUIT:
    pygame.quit()
    sys.exit()


    Dans le détail :

    while True:

    Ceci est une boucle infinie

    for event in pygame.event.get():

            if event.type == pygame.QUIT:
    On surveille les événements pouvant survenir et si il apparait un événement de type QUIT, on exécute les lignes suivantes.

    pygame.quit()

    sys.exit()
    On quitte pygame et python proprement !
    – 

  4. Et enfin, l’affichage des frames !

    # Cette partie du code contient tout ce qui sera répété à chaque frame
    window.fill((0, 0, 0))
    window.blit(label, (100, 100))
    pygame.display.update()
    clock.tick(FPS)


    C’est reparti, ligne par ligne :

    window.fill((0, 0, 0)) :

    On colorie la fenêtre en noir.

    window.blit(label, (100, 100)) :

    On affiche le texte en indiquant où il commencera (rappelez-vous que l’origine est en haut à gauche)

    pygame.display.update() :

    On rafraîchit l’affichage…

    clock.tick(FPS) :

    à une cadence de 30 fois par seconde (la valeur de la variable FPS)

Une fois votre texte affiché, nous allons l’animer.
Sauvegardez le programme cours_1.py que vous venez d’utiliser avec le nouveau nom cours_2.py

Modifiez le code pour obtenir ceci :

Quelques indices :

  • Il faut créer des variables :
    X pour la position en x
    Y pour la position en y
    Change_X pour la valeur du changement de X à chaque frame
  • On augmente la valeur d’une variable comme ceci :
    Toto += 1 # La valeur de la variable Toto sera augmentée de 1
  • Pour que l’animation tourne en boucle, il faudra remettre X à sa valeur initiale quand sa valeur aura atteint le bord du cadre (600 !).

Une fois votre travail réalisé, montrez-le à l’animateur.

Le fichier complet est accessible en bas de cette page, mais est réservé aux stagiaires de Top Sciences.

Fichiers de correction (accès réservé aux stagiaires) :