Licence CC BY

Pygame pour les zesteurs

Un tutoriel pour vous apprendre à vous servir de Pygame, et seulement à partir d'un zeste !

L’auteur de ce contenu recherche un repreneur. N’hésitez pas à le contacter par MP pour proposer votre aide !

Les jeux-video ça vous plait ? Un peu, beaucoup ? Si vous connaissez le langage Python, alors ce tutoriel tombe à pic (enfin, pas comme un pigeon descendu par un chasseur) !

Pourquoi ce tutoriel ?

On a remarqué que beaucoup de bibliothèques avaient de très bons tutoriels, mais en anglais, et cela a toujours rebuté certains programmeurs, qu’ils soient débutants ou non ! De plus, les-dits tutoriels n’ont pas à proprement parler une bonne quantité de Travaux Pratiques (TP) / Travaux Dirigés (TD) pour aider le débutant dans sa première utilisation de la bibliothèque. Il doit donc lire toute une documentation, souvent complexe quand on vient à peine de débuter en programmation.

C’est pourquoi on a décidé de rédiger un tutoriel sur Pygame (qui sera plus complet que les quelques-uns que l’on peut voir sur d’autres sites ^^ ), avec des TP et TD, et qui vous expliquera tout, seulement à partir d’un zeste de savoir à propos de Python (3) :p !

Prérequis
Comme dit précédemment, il faut que vous ayez des bases dans le langage de programmation Python, dans sa version 3. Si ce n’est pas le cas, on vous renvoie à ces différents tutoriels, très bien écrits :

Objectifs
Ici vous allez apprendre à créer des fenêtres, charger des images et les utiliser, jouer une musique, et encore plein d’autres choses extrêmement intéressantes !

Pourquoi Pygame ?

Pygame est une bibliothèque bien connue chez les développeurs python, déjà parce que :

  • c’est un binding1 de la SDL 1.2 en C (et la SDL est très connue et utilisée !)

  • c’est une bibliothèque qui permet de coder des jeux (entre autres), car :

    • elle permet d’afficher des images

    • de jouer des musiques

    • de faire du "pixel perfect" avec son module mask

    • d’écrire du texte dans vos jeux, par exemple un dialogue entre deux personnages

    • de créer des images de toutes pièces et de les enregistrer

    • de faire des dessins, et encore pleins d’autres choses !

Bon d’accord, c’est bien peu comme arguments.

En voici donc d’autres :

  • elle est portable sur différents systèmes d’exploitation, donc vos programmes tourneront (normalement) aussi bien sur Windows, Linux et MacOS

  • elle est simple à prendre en main

  • son développement est très actif

Le site officiel de Pygame, une mine d’or !

Pour ceux qui aimeraient avoir des exemples (qui sont classés par tag) de ce qui est faisable avec Pygame, voici un petit lien : Tags - Pygame

Ici vous trouverez la liste de toutes les fonctions fournies par Pygame : Index - Pygame Documentation

Et maintenant, allons-y !

Logo de Pygame

Une seconde partie traitant d’une utilisation plus poussée de Pygame est en cours de rédaction


  1. Nombre de bibliothèques sont écrites dans des langages proches de la machine comme le C ou le C++. Pour utiliser ces bibliothèques dans un langage de plus haut niveau, il est donc nécessaire de réaliser un binding.

    La conception d’un binding peut être motivée par le fait de profiter des performances offertes par l’utilisation d’un langage bas niveau que l’on ne peut obtenir avec un langage de plus haut niveau. La réutilisation de code éprouvé peut également être une autre raison d’y recourir.

    https://fr.wikipedia.org/wiki/Binding

A la découverte de Pygame !

  1. Avant de commencer...

    1. "A small game made with Pygame"

    2. DonkeyPy, un DonkeyKong like

    3. Un moteur de raycasting

  2. Installer et importer Pygame

    1. Installer Pygame

    2. Import pygame

    3. Vérifier qu'un module a bien été importé

  3. Créer une simple fenêtre (personnalisable !)

    1. Créons une fenêtre basique

    2. Personnalisons notre fenêtre

  4. Afficher des images

    1. Lire une image

    2. Convertir nos images

    3. Afficher une image sur notre belle fenêtre !

  5. La gestion des événements

    1. Qu'est-ce qu'un événement ?

    2. Comment les capturer ?

    3. Les types d'événements disponibles

    4. Les événements disponibles !

    5. Entrainons-nous avec les événements !

  6. [TD] Un petit jeu très simple

    1. Le cahier des charges

    2. Un menu et des constantes

    3. La gestion de la raquette

    4. Gestion de la balle

    5. Et enfin, le cœur de la maison, la cuisine !

  7. Annexes

    1. Les différents modules de Pygame



SuperFola a ouvert un dépôt Github de projets d’exemples utilisant Pygame (voir les différentes branches), juste ici. N’hésitez surtout pas à y contribuer !

Remerciements

Merci à Karnaj, Looping, Wizix, the_new_sky, Emeric, Kje, Nohar, Smokiev, klafyvel, Arius, (et bien d’autres que l’on oublie sûrement !), pour leur contribution (soutien, relecture, proposition d’exercice, … etc) !

Le mot de la fin

Voilà, ce tutoriel est maintenant terminé :)

On espère qu’il vous a plu et que vous le garderez dans vos favoris (n’oubliez pas le petit CTRL+D, ça sert beaucoup :D) !

Nous attendons avec impatience vos retours sur ce tutoriel, et nous avons hâte de voir ce que vous allez pouvoir réaliser avec Pygame ;) !

Ces contenus pourraient vous intéresser

9 commentaires

Si je comprends bien @IvanUrbaczka, tu aimerais voir des illustrations (screenshots du rendu fait via pygame quand c’est possible) de ce que fait chaque morceau de code ?

Pour ce qui est de la quantité de code dans cette partie du tutoriel, je peux convenir que cela fasse beaucoup à ingérer, mais en prenant en compte le fait que ce ne sont que des corrections, et que le lecteur est guidé lors de la création du projet (actuellement uniquement par des paragraphes, des images pourraient en aider quelques un en effet), ce n’est pas non plu la mer à boire.

Bonne journée :)

+0 -0

Je commence une formation Python et je vais avoir besoin bientôt de Pygame. Je me suis créé un compte pour mettre un grand merci, je n’ai pour le moment regardais que les premiers chapitres mais ça fait plaisir de trouver un tuto accessible pour les débutants. Je sais que la norme est à l’anglais mais c’est quand même plus facile quand on découvre tout de ne pas avoir en plus une gymnastique de traduction.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte