« Pygame/Introduction à Pygame » : différence entre les versions

Contenu supprimé Contenu ajouté
Argon.7600 (discussion | contributions)
NewBorn (discussion | contributions)
Corrections mineures et remise en forme
Ligne 1 :
{{Pygame - Menu}}
===Indroduction a Pygame.===
Traduit de l'anglais, l'original : http://www.pygame.org/docs/tut/intro/intro.html .
 
Traduit de l'anglais, l'original par ''Pete Shinners'' :<br/>
http://www.pygame.org/docs/tut/intro/intro.html
Cet article est une introduction à pygame pour les programmeurs python. La version originale est dans le Pyzine volume 1 issue 3. Cette version contient des révisions trop mineures pour créer un nouvel article. Pygame est une librairie d'extension de python basée sur la librairie SDL.
 
 
== Indroduction à Pygame ==
Cet article est une introduction à la bibliothèque Pygame pour les programmeurs Python. La version originale est parue dans le Pyzine volume 1 issue 3. Cette version contient des révisions trop mineures pour créer un nouvel article. Pygame est une bibliothèque d'extension de Python, enveloppe de la bibliothèque SDL.
====Histoire====
Pygame a commencé durant l'été 2000. Connaissant le C depuis des années, j'ai découvert python et SDL en même temps. Vous êtes déjà familiarisé avec python, (qui était à la version 1.5.2), vous pouvez avoir besoin d'une introduction à SDL : "Simple Directmedia Librairy". Créé par Sam Lantinga, SDL est une librairie C gérant les contrôleurs multimedia, elle est comparable à DirectX. Elle a été utilisée pour des centaines de projets commerciaux et de jeux open-source. J'ai été impressionné par propreté et la simplicité des deux projets et j'ai vite réalisé qu'associer python et SDL était une idée intéressante.
J'ai découvert un petit projet existant avec exactement la même idée : PySDL. Créé par Mark Baker, PySDL était une implémentation de SDL pour python. L'interface était propre mais je trouvais que ce code était trop proche de C. La mort de PySDL m'a encouragé à lancer un nouveau projet.
== Histoire ==
J'ai cherché a faire un projet tirant réellement profit de python. Mon but était de permettre de réaliser simplement des choses faciles aussi bien que des choses plus complexes. Pygame a commencé en octobre 2000. Six mois plus tard, la version 1.0 faisait son apparition.
 
Pygame a commencé durant l'été 2000. Connaissant le langage C depuis des années, j'ai découvert Python et SDL en même temps. Si vous êtes déjà familiarisé avec Python, (qui en était à la version 1.5.2), vous pourriez avoir besoin d'une introduction à SDL : ''Simple Directmedia Librairy''. Créée par Sam Lantinga, SDL est une bibliothèque multi-plateforme écrite en C afin de gérer le multimédia, elle est comparable à DirectX. Elle a été utilisée par des centaines de projets commerciaux et de jeux open-source. J'ai été impressionné par la propreté et la simplicité des deux projets et j'ai vite réalisé qu'associer Python et SDL était une idée intéressante.
J'ai découvert un petit projet existant avec exactement la même idée : PySDL. Créé par Mark Baker, PySDL était une implémentation de SDL pour Python. L'interface était propre mais je trouvais que ce code était trop proche de C. La mort de PySDL m'a encouragé à lancer un nouveau projet.
J'ai cherché à faire un projet tirant réellement profit de Python. Mon but était de permettre de réaliser facilement des choses simples aussi bien que des choses plus complexes. Pygame a commencé en octobre 2000. Six mois plus tard, la version 1.0 faisait son apparition.
DÉBUT
Je trouve que le meilleur moyen pour saisir le fonctionnement d'une nouvelle librairie est de directement regarder un exemple parlant. Dans les premiers jours avec Pygame, j'ai crée une animation de balle rebondissante en 7 lignes de code. Jetons un coup d'œil a une version simple pour commencer facilement.
 
1 import sys, pygame
2 pygame.init()
3
4 size = width, height = 320, 240
5 speed = [2, 2]
6 black = 0, 0, 0
7
8 screen = pygame.display.set_mode(size)
9
10 ball = pygame.image.load("ball.bmp")
11 ballrect = ball.get_rect()
12
13 while 1:
14 for event in pygame.event.get():
15 if event.type == pygame.QUIT: sys.exit()
16
17 ballrect = ballrect.move(speed)
18 if ballrect.left < 0 or ballrect.right > width:
19 speed[0] = -speed[0]
20 if ballrect.top < 0 or ballrect.bottom > height:
21 speed[1] = -speed[1]
22
23 screen.fill(black)
24 screen.blit(ball, ballrect)
25 pygame.display.flip()
== Un avant-goût ==
 
Je trouve que le meilleur moyen pour saisir le fonctionnement d'une nouvelle bibliothèque est de directement regarder un exemple parlant. Dans les premiers jours avec Pygame, j'ai créé une animation de balle rebondissante en 7 lignes de code. Jetons un coup d'œil à une version simplifiée de la même chose.
Ceci est simple et vous pouvez obtenir une animation de balle rebondissante. On voit au début du code l'importation et l'initialisation du module pygame, ce qui ne change pas vraiment d'un programme à un autre. Le "import pygame" importe toutes les fonctions possibles de pygame. L'appel de "pygame.init()" initialise ces fonctions.
 
 
A la ligne 8, une fenêtre graphique est créée par l'appel de "pygame.display.set_mode()". Pygame et SDL rendent cela facile, et sont par défaut sur les modes graphiques les plus adaptés au matériel graphique. Vous pouvez outrepasser ce mode et Pygame agira en conséquence de ce que le matériel ne peut pas faire. Pygame représente les images comme des objets de surface. Le "display.set_mode()" est une fonction qui crée un nouvel objet en surface représentant le graphique affiché. Tous les dessins que vous faites seront visibles à l'écran.
<source lang="python" line>
import sys, pygame
pygame.init()
 
size = width, height = 320, 240
speed = [2, 2]
black = 0, 0, 0
 
screen = pygame.display.set_mode(size)
 
ball = pygame.image.load("ball.bmp")
ballrect = ball.get_rect()
 
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
 
ballrect = ballrect.move(speed)
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0]
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = -speed[1]
 
screen.fill(black)
screen.blit(ball, ballrect)
pygame.display.flip()
</source>
 
 
* C'est la façon la plus simple d'obtenir une animation de balle rebondissante. On voit au début du code l'importation et l'initialisation du module Pygame, ce qui ne change pas vraiment d'un programme à un autre. Le <tt>import pygame<tt> importe toutes les modules disponibles de Pygame. L'appel de <tt>pygame.init()</tt> initialise chacun de ces modules.
 
* ''A la ligne 8'', une fenêtre graphique est créée par l'appel de <tt>pygame.display.set_mode()</tt>. Pygame et SDL nous simplifie la vie en sélectionnant par défaut les modes graphiques les plus adaptés au matériel graphique. Vous pouvez outrepasser ce mode et Pygame compensera tout ce que le matériel ne peut pas faire. Pygame représente les images comme des objets Surface. La fonction <tt>display.set_mode()</tt> crée un nouvel objet Surface représentant le graphisme actuel à afficher. Tous les dessins que vous faites sur cette surface seront visibles à l'écran.
* ''A la ligne 10'', nous chargeons unenotre image de balle. Pygame supporte une grande variété de format d'image, comme la librairiebibliothèque ''SDL_image'', les formats pris en compte sont : JPG, PNG, TGA et GIF. LeLa fonction "<tt>pygame.image.load()" est une fonction qui</tt> nous retourne la surface contenant l'image de balle. La surface gardera toutes les propriétés (couleurscouleur clé et/ou de transparence alpha) du fichier d'origine. Après le chargement de l'image de la balle, nous créons une variable "<tt>ballrect"</tt>. Pygame possède un objet "très utile nommé <tt>Rect"</tt> qui représente une zone rectangulaire. Dans la partie du code chargée de l'animation, nous verrons quel est le rôle des objets <tt>Rect</tt>.
 
À* ''A la ligne 13'', notre programme est initialisé et prêt aà être lancé. A l'intérieur, d'une boucle infinie qui gère les évènements générés par l'utilisateur, le code dessine et fait bouger la balle. Si vous êtes familier avec la programmation de GUI (Graphical User Interface, ou interfaceInterface graphiqueUtilisateur pour l'utilisateurGraphique), vous avez certainement une notion de ce que sont les évènements. Avec Pygame, il s'agit de la même chose. Lorsqu'un évènement se produit, le programme l'intercepte et agit en conséquence. Le premier évènemenévènement pris en compte est l'action de quitter le programme. Si cet évènement survient, le programme agit en conséquence en appelant la méthode '''<tt>sys.exit()'''</tt>.
 
* Ensuite vient le traitement de l'actualisation de la position de la balle. Aux''Les lignes 17 et 21,'' déplace la variable "<tt>ballrect" bouge</tt> avecpar sa vitesse courante. Si la balle ses'est situedéplacée à l'extérieur de la fenêtrel'écran, la vitesse de la balle est inversée, pour qu'elle reparte dans l'autre sens. Ça ne correspond pas exactement aux lois de Newton, mais ce n'était pas l'objectif de ce premier programme de toutes façons ''':)'''toute façon.
* ''A la ligne 23'', nous effaçons l'écran avecen remplissagele deremplissant lade couleur noirenoir. Si vous n'avez jamais travaillé avec des animations, ceci peut paraitrevous paraître étrange. Vous pouvez vous questionnerdemander sur: "''Pourquoi avons -nous besoin de tout effacer ? Pourquoi n'avons -nous pas juste la balle à bouger sur l'écran ?"'', Ceciceci n'est pas vraiment la manière de fonctionner des animations sur ordinateur. L'Une animation n'est rien de plus qu'une succession d'images, lamais cette succession des images est tellement rapide que le cerveau humain voit une animation. L'affichage<tt>screen</tt> n'est qu'une image que l'utilisateur voit. Si vous n'avez pas pris le temps d'effacer la balle de l'écran, nous pouvonspourrions voir la trace de la balle tout en continuant de voir la balle dans ses nouvelles positions.
* ''A la ligne 24'', nous dessinons une l'image de la balle sur l'écran. Le dessin de l'imageces images est manipulégéré par la fonctionméthode "<tt>Surface.blit()"</tt>. Un blit signifie fondamentalementque desl'on copiescopie les couleurs de pixelschaque pixel d'une image àsur une l'autre. Avec la méthode de Blit<tt>blit()</tt>, on prend une surface dite "''source"'' que l'on copieapplique poursur la placersurface sur''destination'', lale destinationtout avecà une position prédéfinidéfinie.
 
* La dernière chose dont nous avons besoin, est la mise aà jour de l'affichage visible. La Pygame gère l'affichage avec un double tampon (double buffer). Quand nous avons finisfini de dessiner, nous faisons appel aà la fonction "<tt>pygame.display.flip()"</tt>. Ceci fait que tout ce que nous avons dessiné asur l'écranla uneSurface surface quiscreen devient visible. Cette mise en tampon fait que nous sommes sûr de voir toutes lesdes images complètes dessinée à l'écran. Sans quoicette manipulation par tampon, l'utilisateur doitverrait voirl'image lase moitiédessiner deau l'écranfur affichéet à mesure sur son écran.
Ceci conclueconclut notre courte introduction aà Pygame. Pygame possedepossède plusieurs modules pour gérer les entrées de la souris, du clavier et du joystick. Il est aussi possible de liremixer des fichiers audio et de les décoder des flux musicaux. Avec les surfacesSurfaces, vous pouvez dessiner de simples formes (ronds, ...), dessinsles àfaire l'échellepivoter, imageset/ou les mettre à une certaine échelle... Avec en plus un module pour des manipulationmanipulations de pixels sur les images en temps réel avec les "rangées''NumPy numériques de python"arrays''. Pygame peut lire les videos MPEG et supporte les CDs audio. La pygame Pygame a également la capacité d'agir en tant qu'uneque couche d'affichage multi-plateforme pour PyOpenGL. La plupart des modules de la Pygame sont écrits en C, peu sont en pythonPython.
Le site internet de Pygame possède une documentation de référence complète pour chaque fonction de Pygame et plusieurs tutoriaux pour tout niveau d'utilisateur. Les sources de Pygame viennent avec de nombreux exemples pour une compréhension facilitée.
== Python et les jeux ==
Le site internet de la Pygame possède beaucoup de documentation pour les fonctions de Pygame et plusieurs tutoriaux pour tous les niveaux. Les sources de Pygame viennent avec beaucoup d'exemples pour une compréhension facilité.
 
''Python est il approprié pour les jeux ?''</br>
La réponse est : ''Cela dépend du jeu.''
Python est en fait capable de faire tourner des jeux. Cela vous surprendra toujours de savoir tout ce qu'il est possible de faire en 30 millisecondes. Toutefois, il n'est pas difficile de plafonner une fois que votre jeu commencera à devenir plus complexe. N'importe quel jeu fonctionnant en temps réel utilisera pleinement l'ordinateur.
Depuis plusieurs années, il y a une tendance intéressante dans le développement de jeu : l'utilisation de langage de plus haut niveau (plus proches de l'utilisateur que de la machine). Généralement un jeu est divisé en 2 parties majeures. Le moteur de jeu, qui doit être le plus rapide possible, et la logique de jeu, qui commande le moteur de jeu. Il n'y a pas si longtemps, le moteur était écrit en assembleur avec quelques portions de C. De nos jours, le C est plus présent dans les moteurs de jeu, tandis que le jeu en lui même est écrit en langage de script de haut niveau. Les jeux comme ''Quake3'' et ''Unreal Tournament'' exécutent ces scripts en tant que bytecode portable.
Python et le jeu
 
Dans le courant 2001, les developpeurs de ''Rebel Act Studios'' ont fini leurs jeu, ''Severance: Blade of Darkness''. Ce jeu utilise un moteur de jeu 3D modifié, le reste du jeu est écrit en Python. Le jeu est un jeu d'action à la 3ème personne. Vous contrôlez un guerrier mediéval attaquant et explorant des donjons. Vous pouvez télécharger le 3ème addon pour ce jeu, et vous verrez qu'il n'y a rien d'autre que des fichiers sources en Python.
"Le python est il approprié pour les jeux ?" La réponse est : "Cela dépent du jeu."
Beaucoup plus récemment, Python a été utilisé par une grade variété de jeux comme ''Freedom Force'' et ''Humungous' Backyard Sports Series''.
Python est actuellement capable de faire tourner des jeux. Il vous étonnera probablement. Toujours, il n'est pas difficile d'atteindre le sommet une fois que votre jeu commence à devenir plus complexe. N'importe quel jeu fonctionnant en temps réel utilisera pleinement l'ordinateur.
Pygame et SDL s'utilisent comme un excellent moteur de jeu en C pour des jeux en 2D. Les jeux trouvent en grande partie ce dont ils ont besoin dans la SDL pour le graphisme. SDL peut avantageusement utiliser l'accélération graphique matérielle. Vous pouvez optimiser le jeu pour lui faire afficher entre 40 et 200 FPS (images par seconde). Lorsque l'on voit qu'un jeu en Python afficher 200 FPS, on réalise que Python et les jeux peuvent se combiner.
Il y a plusieurs années, reignait une tendance intéressante dans le développement du jeu : le mouvement des langages vers de plus haut niveaux (plus proches de l'utilisateur que de la machine). Généralement un jeu est divisé en 2 majeur parties. Le moteur de jeu, qui doit être le plus rapide possible, et la partie logique du jeu, qui utilise le moteur pour faire le jeu. Le jeu était bien plus rapide quand le moteur de jeu était écrit en assembleur, avec des parties en C. De nos jours, le C est plus présent dans les moteurs de jeu, pendant que le jeu en lui même est écrit avec des langages de plus haut niveau. Les jeux comme Quake3 et Unreal tournament executent des scripts au code portatif.
Il est impressionnant de savoir que Python et SDL fonctionne sur de multiple plateformes. Par exemple, en mai 2001, j'ai actualisé complètement mon projet avec Pygame : ''SolarWolf'', un jeu d'action et d'arcade. Une chose qui m'a étonné est qu'un an après, il n'avait toujours pas eu besoin de patches, correction de bugs, ou de mises à jour. Le jeu était entièrement developpé sous Windows mais tournait aussi sous Linux, Mac OSX et plusieurs Unix sans aucun travail de ma part.
Dans le courant 2001, les developpeurs de Rebel Act Studios ont fini leurs jeu, Severance: Blade of Darkness. Ce jeu utilise un moteur de jeu 3D modifié, le reste du jeu est écrit en python. Le jeu est un jeu d'action à la 3eme personne. Vous contrôlez un guerrier mediéval attaquant et explorant des donjons. Vous pouvez télécharger le 3eme "addon" pour le jeu, et trouver qu'il n'y a pas de python dans les sources.
Beaucoup plus récent, le python est utilisé pour une grade variété de jeux comme Freedom Force et Humungous' Backyard Sports Series.
La Pygame et la SDL servent d'un excellent moteur de jeu en C pour des jeux en 2D.Les jeux trouvent en grande partie ce dont ils ont besoin dans la SDL pour le graphisme. La SDL peut avoir un avantage pour l'acceleration du materiel. Vous pouvez optimiser le jeu pour lui faire afficher entre 40 et 200 frame par seconde (FPS). Lorsque l'on voit un jeu en Python afficher 200 frame par secondes, on réalise que le python et les jeux peuvent se combiner.
Il est bon de connaitre Python et SDL sur de multiples plate-formes. Par exemple,en mai 2001, j'ai actualisé mon projet avec la Pygame : SolarWolf, un jeu d'action et d'arcade. Une chose qui m'a étonné est qu'un an après, il n'avait toujours pas eu besoin de mise à jour pour cause de bugs. Le jeu était entièrement developpé sous windows mais tournait aussi sous Linux, mac OSX et plusieurs Unixs sans aucun travail de ma part.
Mais il y a clairement beaucoup de limitationlimitations. La meilleure manière de gérer l'accelerationaccélération materiellematérielle n'est pas toujours supportéela parmeilleure façon d'avoir de meilleurs résultats pour une accélération logicielle. L'accélération n'est pas disponibles sur toutes les plate-formesplateformes. Quand un jeu estdevient trop complexe, il doit souvent se réduire aà une seule plate-formeplateforme. La SDL aà également quelques limiteslimitations de calcul.conception, des choses comme le Lescrolling modeen plein écran peut réduire fortement la vitesse du jeu, jusqu'aà ce que ca devienne injouable. SDL n'est pas fait pour tous les types de jeux, lesmais souvenez-vous que des compagnies comme Loki utilisentont utilisé la SDL pour faire fontionner une grande variété de jeux.
 
Pygame est un langage bas niveau quand il est utilisé pour coder les jeux. Vous aurez rapidement besoin d'envelopper des fonctions communes pour votre environnement de jeu. C'est en grande partie dû au fait qu'il n'y a rien dans Pygame pour ca. Votre programme a le contrôle total sur tout. Vous constaterez que l'effet indésirable à cela est que vous devrez écrire beaucoup de code ennuyant pour obtenir un cadre plus avancé. Vous aurez besoin d'une meilleure compréhension de ce que vous faite.
===== mauvaise traduction (un peu améliorée par un lecteur, qui remercie d'ailleurs la bonne initiative du traducteur) =====
Pygame est un langage bas niveau quand il est utilisé pour coder les jeux. Vous aurez rapidement besoin de fonctions communes dans votre environnement de jeu. C'est en grande partie du au fait qu'il n'y a rien à l'interieur de la Pygame pour ca. Votre programme est entièrement controlé de tout. Vous constaterez que l'effet indésirable de cela est que vous devrez emprunter beaucoup de code pour obtenir un cadre plus avancé. Vous aurez besoin d'une meilleure compréhension de ce que vous faite.
== En conclusion ==
Pygame is faily low level when it comes to writing games. You'll quickly find yourself needing to wrap common functions into your own game environment. The great thing abuot this is there is nothing inside pygame to get in your way. Your program is in full control of everything. The side effect of that is you will find yourself borrowing a lot of code to get a more advanced framework put together. You'll need a better understanding of what you are doing.
===== mauvaise traduction =====
Pour finir
 
Le developpementdéveloppement en vaut la peine, il y a quelque chose quid'excitant excitedans aule sujetfait de pouvoir voir et agir l'un sur l'autreinteragir avec le code que vous avez écrit. La Pygame est actuellement utilisée par plus de 30 projets. Plusieurs sont jouablejouables dès maintenant. Vous allez être surpris lorsen devisitant la visite dule site internet de [http://www.pygame.org Pygame,] voiren quelsvoyant ce que les autres utilisateurs utilisentsont capables de faire avec pythonPython.
Une chose qui a retenu mon attention, est que beaucoup de mondepersonnes se mettentsont amises à utiliser pythonPython pour lesleurs premiers essais deen developpementdéveloppement de jeu. Je peux voir pourquoi les jeux sont en quêteattirent de nouveaux programmeurs, mais il peut existerêtre des difficultés lorsdifficile de lacréer création d'un jeu qui requiert unune arrangementcompréhension plus fermesolide du langage. J'ai essayé de soutenir ce groupetype d'utilisateurs en écrivant beaucoupplusieurs d'exemples et destutoriels courssur Pygame pour des personnes nouvelles à ces concepts.
Pour finir, mon conseil est de faire au plus simple. Je ne peux me soumettre aà une contrainte. Si vous prevoyezprévoyez de créer votre premier jeu, sachez qu'il y a un tas de chosesbeaucoup à apprendre. Même un simple jeu est un challenge, et les jeux complexes ne sont pas nécessitementnécessairement de bons jeux. MêmeLorsque quandvous tucomprenez ne comprend pas pythonPython, tuvous peuxpourrez utiliser Pygame pour créer un simple jeu en une ou deux semaines. Mais pour avoir un jeu completementcomplètement présentable, il vous faudra de nombreuses heures de travail.
 
== Vue d'ensemble des modules de Pygame ==
 
Voici un récapitulatif des modules disponibles dans la bibliothèque de Pygame, avec un lien sur la documentation de référence de chacun de ces modules.
 
Modules de la pygame :
{| border="1" cellpadding="10" cellspacing="0"
cdrom gere les lecteurs de CD et le lecteur audio
|
cursors charge les images de curseur, inclue les curseurs standards
;'''[http://www.pygame.org/docs/ref/cdrom.html Cdrom]'''
display control l'affichage à l'écran
: Accéder et contrôler les lecteurs CD audio.
draw dessine de simples formes dans une surface
|
event gère les évenements
; '''[http://www.pygame.org/docs/ref/cursors.html Cursors]'''
font création de fonts
image: sauvegardeCharger et chargecompiler lesdes images de curseur.
|
joystick gère le joystick
; '''[http://www.pygame.org/docs/ref/display.html Display]'''
key gère le clavier
: Configurer la surface d'affichage.
mouse gère la souris
|-
movie joue des film MPEG
|
sndarray manipulation de sons numeriques
; '''[http://www.pygame.org/docs/ref/draw.html Draw]'''
surfarray manipulation d'images numeriques
: Dessiner des formes simples comme des lignes et des ellipses sur des surfaces.
time contrôle du temps
|
transform balance, rotations et renversement des images
; '''[http://www.pygame.org/docs/ref/event.html Event]'''
: Gérer les évènements à partir de différents matériels d'entrée (clavier, souris, ...), ainsi que du fenêtrage.
|
; '''[http://www.pygame.org/docs/ref/font.html Font]'''
: Charger et faire un rendu des polices TrueType.
|-
|
; '''[http://www.pygame.org/docs/ref/image.html Image]'''
: Charger, sauver et transférer des images sur des surfaces.
|
; '''[http://www.pygame.org/docs/ref/joystick.html Joystick]'''
: Gérer les joysticks.
|
; '''[http://www.pygame.org/docs/ref/key.html Key]'''
: Gérer le clavier.
|-
|
; '''[http://www.pygame.org/docs/ref/mixer.html Mixer]'''
: Charger et jouer des sons.
|
; '''[http://www.pygame.org/docs/ref/mouse.html Mouse]'''
: Gérer la souris et son affichage.
|
; '''[http://www.pygame.org/docs/ref/movie.html Movie]'''
: Lecture de vidéo à partir de film en MPEG.
|-
|
; '''[http://www.pygame.org/docs/ref/music.html Music]'''
: Jouer des pistes musicales en streaming.
|
; '''[http://www.pygame.org/docs/ref/overlay.html Overlay]'''
: Accès à l'affichage vidéo avancé.
|
; '''[http://www.pygame.org/docs/ref/pygame.html Pygame]'''
: Fonctions de haut niveau pour le contrôle de Pygame.
|-
|
; '''[http://www.pygame.org/docs/ref/rect.html Rect]'''
: Conteneur flexible pour un rectangle.
|
; '''[http://www.pygame.org/docs/ref/sndarray.html Sndarray]'''
: Manipuler des échantillons de données audio.
|
; '''[http://www.pygame.org/docs/ref/sprite.html Sprite]'''
: Objets de haut niveau pour la représentation des images de jeu.
|-
|
; '''[http://www.pygame.org/docs/ref/surface.html Surface]'''
: Objets pour des images et l'écran.
|
; '''[http://www.pygame.org/docs/ref/surfarray.html Surfarray]'''
: Manipuler des données de pixel d'image.
|
; '''[http://www.pygame.org/docs/ref/time.html Time]'''
: Manipuler les temporisateurs et le taux d'image.
|-
|
; '''[http://www.pygame.org/docs/ref/transform.html Transform]'''
: Redimensionner et déplacer des images.
|
|
|}