Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Pygame
  3. Les principaux modules Pygame
Extrait - Pygame Initiez-vous au développement de jeux vidéo en Python (2e édition)
Extraits du livre
Pygame Initiez-vous au développement de jeux vidéo en Python (2e édition)
1 avis
Revenir à la page d'achat du livre

Les principaux modules Pygame

Introduction

L’idée ici est de fournir une documentation relativement précise des principaux modules et objets de Pygame utilisés dans le livre. En effet, si la documentation officielle en ligne est d’excellente facture, aucune documentation en français n’est à ce jour disponible. Le but n’est pas de couvrir de façon exhaustive chaque module, mais au moins d’avoir une documentation très complète des fonctions fréquemment utilisées dans le développement Pygame. Seules les fonctions peu utilisées sont ignorées.

La documentation officielle en ligne de Pygame est disponible à cette adresse web : https://www.pygame.org/docs/

Les modules ou objets détaillés ici le sont dans l’ordre de leur première utilisation dans le livre :

1. Color

2. time

3. event

4. display

5. Surface

6. draw

7. image

8. font

9. mouse

10. key

11. transform  

12. mixer

13. music

14. sprite

Une précision quant à une notation qui sera régulièrement utilisée : la ligne suivante signifie que l’appel de la fonction Exemple1 qui prend en paramètre a et b renvoie un int.

Exemple1( a, b) -> int   

Autre exemple, la fonction Exemple2 qui prend en paramètre i, j et k renvoie un objet de type Color.

Exemple2( i, j, k) -> Color   

L’objet Color

1. La classe Color

La classe Color permet d’instancier des objets représentant les couleurs.

Les couleurs sont définies par un quadruplet (r, g, b, a) :

  • r représente la composante rouge, valeur comprise entre 0 et 255.

  • g représente la composante verte, valeur comprise entre 0 et 255.

  • b représente la composante bleue, valeur comprise entre 0 et 255.

  • a représente la composante alpha qui définit l’opacité associée, valeur comprise entre 0 et 255. 255 représente l’opacité totale et constitue la valeur par défaut. Baisser cette valeur revient à baisser un peu l’opacité et à rendre l’élément coloré (un pixel, une forme géométrique) un peu plus transparent.

2. Les constructeurs de Color

Trois fonctions de type constructeur permettent de créer un objet Color :

Color(r, g, b) -> Color 
Color(r, g, b, a=255) -> Color 
Color(color_value) -> Color 

On peut ainsi créer un objet Color en passant en paramètre r, g et b. On peut aussi préciser a (alpha) dont la valeur par défaut est 255.

3. Les principales fonctions de la classe Color

Fonction de type accesseur qui permet d’obtenir ou de modifier la grandeur r :

pygame.Color.r 

Fonction de type accesseur qui permet d’obtenir ou de modifier la grandeur g :

pygame.Color.g 

Fonction de type accesseur qui permet d’obtenir ou de modifier la grandeur b :

pygame.Color.b 

Fonction de type accesseur qui permet d’obtenir ou de modifier la grandeur a (alpha). Par défaut, la valeur alpha est égale à 255, ce qui correspond à une opacité maximale :

pygame.Color.a 

Exemple d’utilisation

import pygame 
couleur = pygame.Color(255, 255, 255) 
couleur.r = 0 
print(couleur.r) 

On obtient ceci dans le terminal :...

Le module time

1. La fonction get_ticks

get_ticks() -> milliseconds 

Cette fonction permet d’obtenir le nombre de millisecondes qu’il y a entre l’initialisation de Pygame (appel de pygame.init()) et l’appel de cette fonction get_ticks.

Par exemple, quand on exécute ce programme :

import pygame 
pygame.init() 
screen=pygame.display.set_mode((200,400)) 
print(pygame.time.get_ticks()) 

on obtient (sur la machine utilisée) la valeur suivante dans le terminal :

1727 

Cela signifie qu’entre l’appel de init et l’appel de get_ticks, il y a eu une durée de 1 à 2 secondes.

2. La fonction wait

wait(milliseconds) -> time 

La fonction wait permet de faire une pause dans l’exécution pendant une durée exprimée en millisecondes.

3. La fonction delay

delay(milliseconds) -> time 

La fonction delay, tout comme wait, permet de faire une pause dans l’exécution pendant une durée exprimée en millisecondes. Elle utilise le processeur de l’ordinateur et est donc supposée être plus précise que wait.

4. La fonction set_timer

set_timer(eventid, milliseconds) -> None 

Cette fonction set_timer permet de créer un évènement qui est placé dans la file d’attente des évènements. Il se déclenche de manière cyclique toutes les x millisecondes, x étant la valeur passée en paramètre.

Par exemple, dans le code suivant, on déclenche un évènement chaque seconde.

import pygame 
pygame.init() 
screen=pygame.display.set_mode((200,400)) 
 
pygame.time.set_timer(pygame.USEREVENT, 1000) 
 
while True: 
 event = pygame.event.wait() 
 print(event) 
 if event.type == pygame.QUIT: 
   break 
 
pygame.quit() 

Dans le terminal, on obtient donc ceci...

Le module event

Le module event permet de gérer les évènements. Dès qu’un évènement est généré, depuis un clavier, une souris ou tout autre périphérique de jeu, il est placé dans une file d’attente, que le module event permet de gérer et d’utiliser. Le rôle des fonctions de ce module est d’interagir avec la file d’attente des évènements.

Un évènement se définit d’abord par son type EventType. Les principales valeurs de ce paramètre sont les suivantes :

QUIT             0 
ACTIVEEVENT      1 
KEYDOWN          2 
KEYUP            3 
MOUSEMOTION      4 
MOUSEBUTTONUP    5 
MOUSEBUTTONDOWN  6 
JOYAXISMOTION    7 
JOYBALLMOTION    8 
JOYHATMOTION     9 
JOYBUTTONUP      10 
JOYBUTTONDOWN    11 
VIDEORESIZE      12 
VIDEOEXPOSE      13 
USEREVENT        14 

1. La fonction pump

pump() -> None 

Le besoin d’utilisation de cette fonction est plutôt rare. Il correspond à la situation suivante : une non-utilisation des évènements dans la boucle de jeu. Auquel cas, il faut tout de même maintenir une interaction. L’appel à chaque itération de la fonction pygame.event.pump permet cela.

2. La fonction get

get(eventtype=None) -> Eventlist 

Cette fonction, abondamment utilisée dès que l’on programme avec Pygame, permet de récupérer les évènements de la file d’attente. En fait, il est extrêmement rare de rencontrer un programme Pygame qui ne l’utilise pas. L’idée...

Le module display

Ce module est systématiquement utilisé dans un code Pygame, car il gère tous les aspects relatifs à la fenêtre de jeu. Quelques fonctions de display sont appelables directement sur le module pygame.

Ainsi :

pygame.init() 

est équivalent à :

pygame.display.init() 

1. La fonction init

init() -> None 

C’est la fonction qui permet d’initialiser Pygame. On ne peut pas faire sans et on l’utilise systématiquement dans chacun des codes Pygame. À noter que les deux écritures suivantes sont équivalentes et qu’en général on privilégie la seconde écriture.

pygame.display.init() 

pygame.init() 

2. La fonction quit

quit() -> None 

C’est la fonction qui permet d’arrêter l’utilisation du module display et plus généralement celle de Pygame. À noter que les deux écritures suivantes sont équivalentes et qu’en général on privilégie la seconde écriture.

pygame.display.quit() 

pygame.quit() 

3. La fonction get_init

get_init() -> bool 

La fonction get_init permet de savoir si l’initialisation de Pygame a bien eu lieu.

Exemple

import pygame 
print(pygame.display.get_init()) 
pygame.display.init() 
print(pygame.display.get_init()) 

On obtient ceci dans le terminal :

0 
1 

4. La fonction set_mode

set_mode(size=(0, 0), flags=0, depth=0, display=0) -> Surface 

C’est la fonction en charge de la création de la surface associée à la fenêtre de jeu. En clair, c’est cette fonction qui crée la fenêtre.

Voici quelques options qui peuvent s’avérer utiles :

pygame.FULLSCREEN  La fenêtre de jeu est en plein écran. 
pygame.RESIZABLE   La fenêtre de jeu est redimensionnable. 
pygame.NOFRAME     La fenêtre...

L’objet Surface

La surface en développement Pygame est un objet qui permet de représenter des images. Images au sens large : des zones géométriques colorées, des zones accueillant des fichiers images, des zones de texte, ou la fenêtre de jeu elle-même, qui est elle aussi une surface.

1. Le constructeur de Surface

Surface((width, height), flags=0, depth=0, masks=None) -> Surface 

Outre la largeur et la hauteur de la surface à créer, tous les autres paramètres ont des valeurs par défaut. En effet, flags, depth et masks correspondent à des usages très spécifiques et rares.

L’exemple suivant permet de créer une surface « de base » non spécialement dédiée à un fichier image, à du texte ou à un objet géométrique. On spécifie juste que la largeur est égale à 50 et la hauteur à 25.

import pygame 
pygame.init() 
 
surface = pygame.Surface((50, 25)) 
print(surface) 

Dans le terminal, on obtient ceci : on retrouve les dimensions 50 et 25 ainsi que les valeurs par défaut des autres paramètres.

<Surface(50x25x32 SW)> 

2. La fonction blit

Cette fonction est fondamentale, car elle permet de positionner une surface à l’intérieur d’une autre surface. Pour rappel, la fenêtre de jeu est une surface. Cette fonction blit permet donc de positionner une surface dans la fenêtre de jeu.

blit(source, dest, area=None, special_flags=0) -> Rect 

On affiche ici une surface de couleur bleue à un endroit donné de la fenêtre de jeu.

import pygame 
pygame.init() 
 
pygame.display.set_caption(u'Blit') 
fenetre = pygame.display.set_mode((400, 400)) 
 
surface = pygame.Surface((50, 25)) 
bleu = (0, 0, 255) 
surface.fill(bleu) ...

Le module draw

Le module draw est le module Pygame qui permet d’afficher des formes géométriques. Son utilisation est relativement intuitive, les fonctions prenant en général le nom (en anglais) des formes que l’on désire afficher.

1. La fonction rect

rect(surface, color, rect, width=0) 

Pour afficher un rectangle, on passe en paramètre :

  • la surface d’affichage,

  • la couleur du contour,

  • le couple de coordonnées du point supérieur gauche et du point inférieur droit du rectangle,

  • l’épaisseur éventuelle du contour.

Exemple d’utilisation

fenetre = pygame.display.set_mode((400, 400)) 
rouge = pygame.Color(255,0,0) 
pygame.draw.rect(fenetre, rouge, ((50, 50), (150, 100)), 1) 

2. La fonction polygon

polygon(surface, color, points, width=0) -> Rect 

Selon le même principe que précédemment, la fonction polygon permet de tracer un polygone. On commence par créer la liste des points qui forment le polygone.

Points = [(200, 200), (250, 300), (300, 325), (400, 350)] 

Puis on l’affiche avec une épaisseur de trait de 1 et une couleur de trait jaune.

jaune = pygame.Color(255,255,0) 
pygame.draw.polygon(fenetre, jaune, points, 1) 

3. La fonction circle

circle(surface, color, center, radius, width=0) -> Rect 

La fonction circle permet d’afficher un cercle sur une surface donnée. On définit en paramètre sa couleur, les coordonnées de son centre, son rayon et l’éventuelle épaisseur du trait.

Dans l’exemple ci-après, on affiche un cercle de centre (200, 200) de rayon 100 et dont le tracé est de couleur blanche et d’épaisseur 1.

blanc = (255, 255, 255) 
pygame.draw.circle(fenetre, blanc, (200, 200), 100, 1) 

4. La fonction ellipse

ellipse(surface, color, rect, width=0) -> Rect 

La fonction ellipse permet d’afficher une ellipse...

Le module image

Le module image sert à afficher des fichiers de type image dans un jeu Pygame.

1. La fonction load

load(filename) -> Surface 

La fonction load permet de charger un fichier image depuis le disque et de l’afficher en tant que surface dans la fenêtre de jeu.

Exemple

surfaceImage = pygame.image.load("MonImage.jpg") 

Les extensions suivantes sont prises en charge par la fonction load :

  • JPG

  • PNG

  • GIF (non animé)

  • BMP

  • PCX

  • TGA (décompressé)

  • TIF

  • LBM (et PBM)

  • PBM (et PGM, PPM)

  • XPM

2. La fonction save

save(Surface, filename) -> None 

La fonction save est la réciproque de la fonction load. Elle permet de sauvegarder une surface Pygame en un fichier image sur le disque.

Exemple d’utilisation depuis une surface nommée IMAGE

pygame.image.save(IMAGE, "IMAGE_FICHIER.png") 

Les extensions suivantes sont prises en charge par la fonction save :

  • BMP

  • TGA

  • PNG

  • JPEG

3. Les fonctions tostring, fromstring, frombuffer

tostring(Surface, format, flipped=False) -> string 

fromstring(string, size, format, flipped=False) -> Surface 

frombuffer(string, size, format) -> Surface 

La fonction tostring permet de créer un buffer de chaîne de caractères représentant l’image. La fonction fromstring permet de créer une surface de type image depuis un buffer de chaîne de caractères. La fonction frombuffer permet de créer une surface de type image depuis un buffer.

Le module font

Le module font assure la gestion du texte dans Pygame.

1. La fonction init

init() -> None 

Cette fonction qui initialise le module font n’est pas supposée être appelée. En effet, l’appel obligatoire pygame.init() se charge de l’appeler. La fonction est donc appelée automatiquement.

2. La fonction quit

quit() -> None 

Cette fonction qui permet de quitter le module font n’est pas supposée être appelée. En effet, l’appel pygame.quit() se charge de l’appeler. La fonction est donc appelée automatiquement.

3. La fonction get_init

get_init() -> bool 

Cette fonction qui renvoie un booléen permet de vérifier si le module font est initialisé ou non.

4. La fonction get_default_font

get_default_font() -> string 

Cette fonction get_default_font permet de savoir quelle est la police de caractères par défaut.

Exemple

import pygame 
pygame.init() 
print(pygame.font.get_default_font()) 

On obtient ceci dans le terminal :

freesansbold.ttf 

5. La fonction get_fonts

pygame.font.get_fonts() 

Cette fonction permet d’obtenir la liste de toutes les polices de caractères disponibles sur la machine sur laquelle est exécuté le programme.

Exemple

import pygame 
pygame.init() 
print(pygame.font.get_fonts()) 

On obtient alors quelque chose de comparable à ceci dans le terminal :

['bigcaslonttf', 'silomttf', 'sfnsdisplayblackitalicotf', 
'sfnsdisplaything4otf', 'sfnsdisplaycondensedthinotf', 'chalkdusterttf',  
'stixsizthreesymregotf', 'timesnewromanttf', 'applebraillepinpoint8dotttf',  
'arialitalicttf', 'stixintupregotf', 'sfnssymbolsblackotf', 
'sfcompacttextregularotf', 'pingfangttc', 'munattc', 'waseemttc', 
'aquakanattc'...

Le module mouse

Le module mouse permet de gérer les diverses interactions relatives à la souris et ainsi de travailler avec ce périphérique dans Pygame.

1. La fonction get_pressed

get_pressed() -> (button1, button2, button3) 

Cette fonction permet de renvoyer un tableau de booléens indiquant l’état de chacun des boutons de la souris. Si la valeur est True, c’est que le bouton de la souris correspondant est enfoncé.

On utilise assez peu cette fonction ; on privilégie plutôt une analyse des évènements issus de la file d’attente des évènements, comme explicité dans le chapitre Le dessin et le graphisme dans tous leurs états avec Pygame.

L’exemple suivant utilise get_pressed.

import pygame 
pygame.display.init() 
print(pygame.mouse.get_pressed()) 

Le résultat dans le terminal est le suivant :

(0, 0, 0) 

2. La fonction get_pos

get_pos() -> (x, y) 

La fonction get_pos permet d’obtenir les coordonnées courantes du curseur de la souris.

Exemple

import pygame 
pygame.display.init() 
fenetre = pygame.display.set_mode((400, 400)) 
 
while True: 
 print(pygame.mouse.get_pos()) 
 for event in pygame.event.get(): 
   if event.type == pygame.QUIT: 
     pygame.quit() 

Ci-après une des lignes affichées dans le terminal :

(224, 351) 

3. La fonction get_rel

get_rel() -> (x, y) 

Cette fonction permet d’obtenir le déplacement relatif depuis la dernière position connue.

Ainsi, si on déplace la souris de 5 pixels horizontalement vers la droite et de 3 pixels verticalement vers le haut, alors l’exemple suivant produit la sortie ci-après dans le terminal.

print(pygame.mouse.get_rel()) 

(5, -3) 

Ainsi, get_pos indique les coordonnées absolues du curseur et get_rel indique les coordonnées...

Le module key

Le module key permet de gérer les interactions avec le clavier de l’ordinateur.

1. Les constantes correspondant aux touches du clavier

Chaque touche a son code Pygame qui permet son test dans la file d’attente des évènements notamment.

Voici la liste quasi exhaustive de ces constantes Pygame :

K_BACKSPACE   \b      backspace 
K_TAB         \t      tab 
K_CLEAR               clear 
K_RETURN      \r      return 
K_PAUSE               pause 
K_ESCAPE      ^[      escape 
K_SPACE               space 
K_EXCLAIM     !       exclaim 
K_QUOTEDBL    "       quotedbl 
K_HASH        #       hash 
K_DOLLAR      $       dollar 
K_AMPERSAND   &       ampersand 
K_QUOTE               quote 
K_LEFTPAREN   (       left parenthesis 
K_RIGHTPAREN  )       right parenthesis 
K_ASTERISK    *       asterisk 
K_PLUS        +       plus sign 
K_COMMA       ,       comma 
K_MINUS       -       minus sign 
K_PERIOD      .       period 
K_SLASH       /       forward slash 
K_0           0       0 
K_1           1       1 
K_2           2       2 
K_3           3    ...

Le module transform

Le module transform permet de créer de nouvelles surfaces Pygame en appliquant à une surface source une ou plusieurs transformations, isométriques ou non.

1. La fonction flip

flip(Surface, xbool, ybool) -> Surface 

La fonction flip permet de faire une symétrie axiale, verticale ou horizontale ou les deux. Elle prend en paramètre la surface que l’on va transformer, un booléen indiquant que l’on procède à une symétrie selon l’axe vertical, un booléen indiquant que l’on procède à une symétrie selon l’axe horizontal. Si les deux booléens sont à True, alors on procède aux deux symétries.

2. La fonction scale

scale(Surface, (width, height), DestSurface = None) -> Surface 

La fonction scale permet de redimensionner une surface. On passe en paramètre la hauteur et la largeur de la surface cible.

3. La fonction rotate

rotate(Surface, angle) -> Surface 

La fonction rotate permet de faire faire une rotation à la surface. L’angle passé en paramètre est exprimé selon le sens antihoraire, en degrés, et non en radians comme c’est parfois le cas pour d’autres fonctions Pygame (le tracé d’arcs d’ellipse notamment).

4. La fonction rotozoom

rotozoom(Surface, angle, scale) -> Surface 
scale2x(Surface, DestSurface = None) -> Surface 

La fonction rotozoom permet de combiner rotation et homothétie. Ceci peut être particulièrement utile pour simuler le lancer d’un objet, du point de vue de l’observateur. La fonction prend en paramètre, outre la surface source, l’angle en degrés orienté dans le sens antihoraire et le facteur homothétique.

Ainsi, la ligne suivante transforme la surface surface0 en combinant une rotation d’angle -30 degrés, donc...

Le module mixer

Le module mixer permet de gérer le son dans un jeu Pygame, que ce soit l’aspect fond sonore ou les effets sonores.

1. La fonction init

init(frequency=22050, size=-16, channels=2, buffer=4096, devicename=None, 
allowedchanges=AUDIO_ALLOW_FREQUENCY_CHANGE | AUDIO_ALLOW_CHANNELS_CHANGE) -> None 

La fonction init permet d’initialiser le module mixer. Elle est nécessaire pour pouvoir utiliser le module.

pygame.mixer.init() 

2. La fonction quit

quit() -> None 

Cette fonction fait cesser l’utilisation du module mixer. Si des sons sont en lecture au moment de l’appel de la fonction, ils sont interrompus.

pygame.mixer.quit() 

3. La fonction get_init

get_init() -> (frequency, format, channels) 

La fonction get_init permet de savoir si le module est bien initialisé. Si c’est le cas, la fonction renvoie un certain nombre d’informations. Sinon, elle renvoie None.

import pygame 
pygame.init() 
pygame.mixer.init() 
print(pygame.mixer.get_init()) 

On obtient alors ceci dans le terminal :

(22050, -16, 2) 

4. L’objet Sound

L’objet Sound permet de créer un objet son.

a. Les constructeurs de Sound

Sound(filename) -> Sound 
Sound(file=filename) -> Sound 
Sound(buffer) -> Sound 
Sound(buffer=buffer) -> Sound 
Sound(object) -> Sound 
Sound(file=object) -> Sound 
Sound(array=object) -> Sound 

Les constructeurs disponibles permettent de créer un objet Sound depuis un fichier son ou depuis un buffer.

b. La fonction play

play(loops=0, maxtime=0, fade_ms=0) -> Channel 

On peut préciser si on veut que le son tourne en boucle, combien de fois si oui, et même indiquer un effet « fade-in » et sa durée.

Exemple d’utilisation simple

import pygame 
pygame.init() 
pygame.mixer.init() 
son = pygame.mixer.Sound("son.ogg") 
son.play() 

La valeur retournée...

Le module music

Ce module mixer.music sert à « streamer » le fond sonore et plus généralement à gérer le fond musical. Ainsi, la classe Sound du module mixer sert plutôt aux effets sonores, alors que le module music est plutôt dévolu au fond sonore.

1. La fonction load

load(filename) -> None 

La fonction load permet de charger un fichier son pour le diffuser en fond sonore.

2. La fonction unload

unload() -> None 

La fonction unload permet de décharger le fichier son courant qui avait été préalablement chargé.  

3. La fonction play

play(loops=0, start=0.0) -> None 

La fonction play permet de lire le fichier son préalablement chargé. On peut indiquer combien de fois on veut le lire en boucle. On peut également ne pas commencer au début du fichier, mais au contraire indiquer une position dans le fichier à partir de laquelle démarrer la lecture.

Dans l’exemple suivant, on lit le fichier cinq fois de suite.

import pygame 
pygame.init() 
pygame.mixer.init() 
 
fond = pygame.mixer.music.load("coq.ogg") 
pygame.mixer.music.play(5, 0.0) 
 
while True: 
 event = pygame.event.wait() 
 if event.type == pygame.QUIT: 
   break 
 
pygame.quit() 

4. La fonction rewind

rewind() -> None 

La fonction rewind permet de faire revenir le fichier son à son début.

5. La fonction stop

stop() -> None 

La fonction stop arrête la diffusion du son courant.

6. La fonction pause

pause() -> None 

La fonction pause met en pause la diffusion du son courant.

7. La fonction unpause

unpause() -> None 

La fonction unpause interrompt la mise en pause de la diffusion du son courant.

8. La fonction fadeout

fadeout(time) -> None 

La fonction fadeout fait un arrêt de la diffusion du son, avec un effet « fade-out »...

Le module sprite

Le module sprite permet de gérer l’utilisation des sprites dans un programme Pygame. Cette notion est largement traitée dans les chapitres Les sprites avec Pygame et Plus loin avec le module  sprite, exemples appliqués.

Ce module comprend plusieurs classes, notamment la classe Sprite et la classe Group qui consiste en un objet à même de maintenir une collection d’objets sprite.

1. La classe Sprite

a. La fonction update

update(*args) -> None 

Une fois l’instance de Sprite créée (en général, c’est une instance d’une classe héritant de la classe Sprite), la fonction update permet de mettre à jour automatiquement les caractéristiques du sprite courant.

b. La fonction add

add(*groups) -> None 

La fonction add permet d’ajouter l’instance courante de Sprite à un ou plusieurs groupes.

c. La fonction remove

remove(*groups) -> None 

La fonction remove permet de retirer l’instance courante de Sprite d’un ou plusieurs groupes.

d. La fonction kill

kill() -> None 

La fonction kill est ni plus ni moins qu’un destructeur. Son appel permet de détruire l’instance courante de Sprite.

e. La fonction alive

alive() -> bool 

La fonction alive renvoie True si l’instance courante de Sprite appartient à au moins un groupe.

f. La fonction groups

groups() -> group_list 

La fonction groups permet d’obtenir la liste de tous les groupes auxquels appartient l’instance courante de Sprite.

2. La classe Group

La classe Group permet de créer des listes de sprites selon différents critères.

a. La fonction sprites

sprites() -> sprite_list 

La fonction sprites permet d’obtenir la liste des sprites qui composent l’instance de Group.

b. La fonction copy

copy() -> Group 

La fonction copy permet de créer une copie de l’instance courante...