1. Livres et vidéos
  2. Pygame - Initiez-vous au développement de jeux vidéo en Python

Pygame Initiez-vous au développement de jeux vidéo en Python

  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne
  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement
  • Version HTML
  • Accès illimité 24h/24, 7J/7

Présentation

Ce livre s'adresse à tous les makers et passionnés de programmation qui souhaitent apprendre à développer des jeux vidéo avec Pygame. Il intéressera également les débutants en langage Python ainsi que les informaticiens qui veulent parfaire leur connaissance de cette bibliothèque utilisée non seulement dans le domaine du jeu vidéo, mais également dans celui de la simulation.

La maîtrise du langage Python n'étant pas nécessaire pour lire ce livre, l'auteur commence par en présenter les bases avant d'indiquer comment faire ses premiers pas avec Pygame et de détailler la structure d'un jeu Pygame. Puis, au fil des chapitres, les principaux aspects du développement de jeux vidéo en deux dimensions sont étudiés. Ainsi, le lecteur étudie comment gérer une boucle de jeu, comment maîtriser les aspects graphiques avec le module pygame.draw, comment ajouter du son avec le module pygame.mixer ou encore comment gérer le temps et surtout les collisions entre objets graphiques grâce à la notion de sprite. L'auteur propose également une introduction à la 3D et à la notion de moteur de jeu.

Pour finir, les deux derniers chapitres fournissent au lecteur une documentation précise des principaux modules Pygame utilisés dans le livre ainsi que ceux fréquemment utilisés dans le développement Pygame.

Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.



Quizinclus dans
la version en ligne !
  • Testez vos connaissances à l'issue de chaque chapitre
  • Validez vos acquis

Table des matières

  • Présentation et bases du langage Python
    • 1. Introduction
    • 2. Présentation de Python
      • 2.1 Le langage
      • 2.2 Installation de Python
        • 2.2.1 Installation de Python sur Windows
        • 2.2.2 Installation de Python sur Mac OS
        • 2.2.3 Installation de Python sur Linux
    • 3. Les bases de Python
      • 3.1 L'interpréteur de commande
      • 3.2 Les variables
      • 3.3 De l'interpréteur de commande à l'usage d'un fichier
      • 3.4 Installation des modules avec pip
      • 3.5 Les chaînes de caractères
        • 3.5.1 La fonction print
        • 3.5.2 Une chaîne de caractères est comme une collection
        • 3.5.3 La taille d'une chaîne de caractères
        • 3.5.4 Premières manipulations de chaînes de caractères
      • 3.6 Les listes
      • 3.7 Les conditions
      • 3.8 Les boucles
        • 3.8.1 La boucle for
        • 3.8.2 La boucle while
        • 3.8.3 Le mot-clé break
      • 3.9 L'environnement virtuel en bref
      • 3.10 Développement d'un petit jeu en ligne de commande
  • Premiers pas avec Pygame
    • 1. La boucle de jeu
    • 2. Présentation de Pygame
    • 3. Installation de Pygame
    • 4. Les modules composant Pygame
    • 5. Réalisation d'un premier jeu graphique : Fusée et planètes
      • 5.1 Les images utilisées
      • 5.2 La fenêtre du jeu
      • 5.3 La boucle du jeu
      • 5.4 Le système de coordonnées Pygame
      • 5.5 Les variables du jeu
        • 5.5.1 Les variables liées à la fusée
        • 5.5.2 Les variables liées aux deux planètes qui « tombent »
        • 5.5.3 Les variables relatives au comptage des points
        • 5.5.4 Les variables relatives aux images
      • 5.6 Les déplacements de la fusée
      • 5.7 Les déplacements des planètes
      • 5.8 Les collisions
      • 5.9 Le code complet
  • La structure d’un jeu Pygame
    • 1. Introduction
    • 2. Initialisation
    • 3. Aide en ligne de commande
    • 4. Affichage de la fenêtre
      • 4.1 Le tuple size de set_mode
      • 4.2 Le paramètre flags de set_mode
    • 5. Rappels concernant la boucle de jeu
    • 6. Les surfaces Pygame
      • 6.1 Définition d’une surface
      • 6.2 La fenêtre de jeu, une surface particulière
      • 6.3 Exemple de manipulation d’une surface
      • 6.4 Manipulation de la surface
      • 6.5 Surface ou copie de surface ?
      • 6.6 Coloration de la surface
    • 7. Gestion des couleurs
    • 8. Système de coordonnées
    • 9. Gestion du temps et des évènements
      • 9.1 Gestion du temps dans Pygame
      • 9.2 Gestion des évènements dans Pygame
        • 9.2.1 La fonction pygame.event.get
        • 9.2.2 La fonction pygame.event.wait
        • 9.2.3 La fonction pygame.event.poll
      • 9.3 Un exemple : le carré qui rebondit
  • Le dessin et le graphisme dans tous ses états avec Pygame
    • 1. Introduction
    • 2. Dessiner des formes avec Pygame
      • 2.1 Le module pygame.draw
      • 2.2 Dessiner une ligne
      • 2.3 Dessiner une ligne brisée
      • 2.4 Dessiner un rectangle
      • 2.5 Dessiner un polygone
      • 2.6 Dessiner un cercle
      • 2.7 Dessiner une ellipse
      • 2.8 Dessiner un arc de cercle
      • 2.9 L'anti-aliasing
    • 3. Afficher et sauvegarder des images avec Pygame
      • 3.1 Le module pygame.image
      • 3.2 Charger des images avec Pygame
        • 3.2.1 La fonction pygame.draw.load
        • 3.2.2 La bonne pratique de l'appel de convert()
        • 3.2.3 Exemple de chargement et d'affichage d'une image
      • 3.3 Sauver des images avec Pygame
    • 4. Utiliser et manipuler du texte dans Pygame
      • 4.1 Le module pygame.font
      • 4.2 Utiliser des polices de caractères système avec Pygame
      • 4.3 Utiliser ses propres polices de caractères avec Pygame
    • 5. Concevoir un logiciel de dessin avec Pygame
      • 5.1 Gérer les évènements de la souris ou du clavier en Pygame
      • 5.2 Première version du logiciel : afficher le tracé réalisé avec la souris
      • 5.3 Seconde version du logiciel : améliorations diverses
        • 5.3.1 Amélioration de l'expérience du tracé
        • 5.3.2 Ajout de fonctionnalités (couleur, épaisseur, etc.)
    • 6. Appliquer des transformations géométriques dans Pygame
      • 6.1 Le module pygame.transform
      • 6.2 Exemple d'utilisation des transformations Pygame
  • L'ajout de sons dans un jeu Pygame
    • 1. Introduction
    • 2. La gestion du son avec Pygame
      • 2.1 Les modules pygame.mixer et pygame.mixer.music
        • 2.1.1 Le module pygame.mixer.music (fond sonore)
        • 2.1.2 Le module pygame.mixer (effets sonores)
      • 2.2 Les fichiers son
      • 2.3 La notion de channel (canal) dans Pygame
    • 3. Exemple d'utilisation du son avec Pygame
  • Les sprites avec Pygame
    • 1. La notion de sprite dans Pygame
    • 2. La notion de group dans Pygame
    • 3. Une gestion des collisions simplifiée
    • 4. Quelques explications sur la programmation orientée objet
      • 4.1 Le paradigme objet, les grandes lignes
      • 4.2 L'héritage
      • 4.3 Des mots-clés fondamentaux en Python
        • 4.3.1 Le mot-clé self
        • 4.3.2 Le mot-clé class
        • 4.3.3 Le mot-clé def
        • 4.3.4 __init__
      • 4.4 L'exemple de la classe Voiture en Python
      • 4.5 Ce que l'on savait déjà... sans le savoir
    • 5. Le module sprite et son utilisation
      • 5.1 Le contenu du module sprite
      • 5.2 Création d'un sprite
        • 5.2.1 Premier exemple d'utilisation
        • 5.2.2 Retour sur le premier exemple
      • 5.3 Gros plan sur l'attribut rect de la classe Sprite
      • 5.4 La liste de sprites (group)
      • 5.5 Gestion des collisions grâce aux sprites
  • Plus loin avec le module sprite, exemples appliqués
    • 1. Introduction
    • 2. Le jeu du serpent (snake)
      • 2.1 Le contexte
      • 2.2 Les images utilisées
      • 2.3 Les effets sonores utilisés
      • 2.4 Le programme global
      • 2.5 Les listes de sprites (group)
      • 2.6 Les variables globales
      • 2.7 Les classes
        • 2.7.1 La classe SERPENT
        • 2.7.2 La classe CORPS
        • 2.7.3 La classe NOURRITURE
      • 2.8 Le programme lui-même
        • 2.8.1 La fonction AFFICHER_SCORE
        • 2.8.2 Le corps du programme
    • 3. Le jeu du labyrinthe
      • 3.1 Le contexte
      • 3.2 Conception du labyrinthe
      • 3.3 Les images utilisées
      • 3.4 Le programme global
      • 3.5 Les listes de sprites (group)
      • 3.6 Les classes
        • 3.6.1 La classe MUR
        • 3.6.2 La classe OBJET
        • 3.6.3 La classe Chrono
        • 3.6.4 La classe PERSONNAGE
      • 3.7 Le programme lui-même
    • 4. Le jeu de casse-briques
      • 4.1 Le contexte
      • 4.2 Les images utilisées
      • 4.3 Le programme global
      • 4.4 Les listes de sprites (group)
      • 4.5 Les constantes
      • 4.6 Les classes
        • 4.6.1 La classe OBJET
        • 4.6.2 La classe RAQUETTE
        • 4.6.3 La classe BRIQUE
        • 4.6.4 La classe BALLE
      • 4.7 Le programme lui-même
    • 5. Le jeu de défilement : Fusée et planètes (version 2)
      • 5.1 Le contexte
      • 5.2 Le programme global
      • 5.3 Les listes de sprites (group)
      • 5.4 Les classes
        • 5.4.1 La classe FUSEE
        • 5.4.2 La classe PLANETE
      • 5.5 Le programme lui-même
  • Introduction à la 3D et à la notion de moteur de jeu
    • 1. Travailler en 3D avec Pygame
      • 1.1 La bibliothèque 3D OpenGL
      • 1.2 OpenGL en Python/Pygame
        • 1.2.1 PyOpenGL
        • 1.2.2 Les notions fondamentales : sommet et arête
        • 1.2.3 PyOpenGL et Pygame
      • 1.3 PyOpenGL/Pygame : l’exemple du cube
        • 1.3.1 Le code global
        • 1.3.2 Explication détaillée du code
      • 1.4 Plus loin avec PyOpenGL/Pygame : l’exemple du cube (suite)
        • 1.4.1 Le code global
        • 1.4.2 Explication détaillée du code
    • 2. La notion de moteur de jeu vidéo
      • 2.1 Définition
      • 2.2 Créer son propre moteur de jeu ?
      • 2.3 Une ébauche de moteur de jeu
  • Les principaux modules Pygame
    • 1. Introduction
    • 2. L'objet Color
      • 2.1 La classe Color
      • 2.2 Les constructeurs de Color
      • 2.3 Les principales fonctions de la classe Color
      • 2.4 Les fonctions associées aux autres représentations de la couleur
        • 2.4.1 La représentation CMY
        • 2.4.2 La représentation HSV et HSL
        • 2.4.3 La représentation I1I2I3
      • 2.5 Les autres fonctions
        • 2.5.1 La fonction normalize
        • 2.5.2 La fonction correct_gamma
        • 2.5.3 La fonction set_length
    • 3. Le module time
      • 3.1 La fonction get_ticks
      • 3.2 La fonction wait
      • 3.3 La fonction delay
      • 3.4 La fonction set_timer
      • 3.5 L'objet Clock
        • 3.5.1 Création d'une instance
        • 3.5.2 La fonction tick
        • 3.5.3 La fonction get_time
        • 3.5.4 La fonction get_fps
    • 4. Le module event
      • 4.1 La fonction pump
      • 4.2 La fonction get
      • 4.3 La fonction poll
      • 4.4 La fonction wait
      • 4.5 La fonction peek
      • 4.6 La fonction clear
      • 4.7 La fonction event_name
      • 4.8 La fonction set_blocked
      • 4.9 La fonction set_allowed
    • 5. Le module display
      • 5.1 La fonction init
      • 5.2 La fonction quit
      • 5.3 La fonction get_init
      • 5.4 La fonction set_mode
      • 5.5 La fonction flip
      • 5.6 La fonction update
      • 5.7 La fonction set_icon
      • 5.8 La fonction set_caption
    • 6. L'objet Surface
      • 6.1 Le constructeur de Surface
      • 6.2 La fonction blit
      • 6.3 La fonction blits
      • 6.4 Les fonctions convert et convert_alpha
      • 6.5 La fonction copy
      • 6.6 La fonction fill
      • 6.7 La fonction scroll
      • 6.8 La fonction set_colorkey
      • 6.9 La fonction get_colorkey
    • 7. Le module draw
      • 7.1 La fonction rect
      • 7.2 La fonction polygon
      • 7.3 La fonction circle
      • 7.4 La fonction ellipse
      • 7.5 La fonction arc
      • 7.6 La fonction line
      • 7.7 La fonction lines
      • 7.8 Les fonctions aaline et aalines
    • 8. Le module image
      • 8.1 La fonction load
      • 8.2 La fonction save
      • 8.3 Les fonctions tostring, fromstring, frombuffer
    • 9. Le module font
      • 9.1 La fonction init
      • 9.2 La fonction quit
      • 9.3 La fonction get_init
      • 9.4 La fonction get_default_font
      • 9.5 La fonction get_fonts
      • 9.6 La fonction match_font
      • 9.7 La fonction SysFont
      • 9.8 L'objet Font
        • 9.8.1 La fonction Font
        • 9.8.2 La fonction render
        • 9.8.3 La fonction size
        • 9.8.4 La fonction set_underline
        • 9.8.5 La fonction get_underline
        • 9.8.6 La fonction set_bold
        • 9.8.7 La fonction get_bold
        • 9.8.8 La fonction set_italic
        • 9.8.9 La fonction get_italic
        • 9.8.10 La fonction metrics
    • 10. Le module mouse
      • 10.1 La fonction get_pressed
      • 10.2 La fonction get_pos
      • 10.3 La fonction get_rel
      • 10.4 La fonction set_pos
      • 10.5 La fonction set_visible
      • 10.6 La fonction get_visible
      • 10.7 La fonction get_focused
      • 10.8 La fonction set_cursor
      • 10.9 La fonction get_cursor
    • 11. Le module key
      • 11.1 Les constantes correspondant aux touches du clavier
      • 11.2 La fonction get_focused
      • 11.3 La fonction pressed
      • 11.4 La fonction set_repeat
      • 11.5 La fonction get_repeat
      • 11.6 La fonction name
    • 12. Le module transform
      • 12.1 La fonction flip
      • 12.2 La fonction scale
      • 12.3 La fonction rotate
      • 12.4 La fonction rotozoom
      • 12.5 La fonction scale2x
      • 12.6 La fonction chop
      • 12.7 La fonction laplacian
      • 12.8 La fonction average_surfaces
      • 12.9 La fonction average_color
    • 13. Le module mixer
      • 13.1 La fonction init
      • 13.2 La fonction quit
      • 13.3 La fonction get_init
      • 13.4 L'objet Sound
        • 13.4.1 Les constructeurs de Sound
        • 13.4.2 La fonction play
        • 13.4.3 La fonction stop
        • 13.4.4 La fonction fadeout
        • 13.4.5 La fonction set_volume
        • 13.4.6 La fonction get_volume
        • 13.4.7 La fonction get_num_channels
        • 13.4.8 La fonction get_length
        • 13.4.9 La fonction get_raw
      • 13.5 L'objet Channel
        • 13.5.1 Le constructeur de Channel
        • 13.5.2 La fonction queue
        • 13.5.3 La fonction set_volume
        • 13.5.4 La fonction get_volume
        • 13.5.5 Les fonctions play, stop, pause etc.
      • 13.6 Les fonctions get_num_channels, set_num_channels, find_channel
    • 14. Le module music
      • 14.1 La fonction load
      • 14.2 La fonction unload
      • 14.3 La fonction play
      • 14.4 La fonction rewind
      • 14.5 La fonction stop
      • 14.6 La fonction pause
      • 14.7 La fonction unpause
      • 14.8 La fonction fadeout
      • 14.9 La fonction set_volume
      • 14.10 La fonction get_volume
      • 14.11 La fonction set_pos
      • 14.12 La fonction get_pos
      • 14.13 La fonction queue
    • 15. Le module sprite
      • 15.1 La classe Sprite
        • 15.1.1 La fonction update
        • 15.1.2 La fonction add
        • 15.1.3 La fonction remove
        • 15.1.4 La fonction kill
        • 15.1.5 La fonction alive
        • 15.1.6 La fonction groups
      • 15.2 La classe Group
        • 15.2.1 La fonction sprites
        • 15.2.2 La fonction copy
        • 15.2.3 La fonction add
        • 15.2.4 La fonction remove
        • 15.2.5 La fonction has
        • 15.2.6 La fonction update
        • 15.2.7 La fonction draw
        • 15.2.8 La fonction clear
        • 15.2.9 La fonction empty
      • 15.3 Les principales fonctions du module
        • 15.3.1 La fonction spritecollide
        • 15.3.2 La fonction collide_rect
        • 15.3.3 La fonction collide_circle
        • 15.3.4 La fonction collide_mask
        • 15.3.5 La fonction groupcollide
        • 15.3.6 La fonction spritecollideany
  • Les modules secondaires Pygame
    • 1. Introduction
    • 2. Le module cursors
      • 2.1 Les curseurs prédéfinis du module
      • 2.2 La fonction compile
      • 2.3 La fonction load_xbm
    • 3. Le module joystick
      • 3.1 La fonction init
      • 3.2 La fonction quit
      • 3.3 La fonction get_init
      • 3.4 La fonction get_count
      • 3.5 La classe Joystick
        • 3.5.1 La fonction Joystick
        • 3.5.2 La fonction init
        • 3.5.3 La fonction quit
        • 3.5.4 La fonction get_init
        • 3.5.5 La fonction get_id
        • 3.5.6 La fonction get_name
        • 3.5.7 La fonction get_numaxes
        • 3.5.8 La fonction get_axis
        • 3.5.9 La fonction get_numballs
        • 3.5.10 La fonction get_ball
        • 3.5.11 La fonction get_numbuttons
        • 3.5.12 La fonction get_button
        • 3.5.13 La fonction get_numhats
        • 3.5.14 La fonction get_hat
    • 4. Le module touch
      • 4.1 La fonction get_num_devices
      • 4.2 La fonction get_device
      • 4.3 La fonction get_num_fingers
      • 4.4 La fonction get_finger
    • 5. Le module math
      • 5.1 La classe Vector2 - Création de vecteur
      • 5.2 La classe Vector3 - Création de vecteur
      • 5.3 Les principales fonctions de Vector2 et Vector3
        • 5.3.1 La fonction dot
        • 5.3.2 La fonction length
        • 5.3.3 La fonction normalize
        • 5.3.4 La fonction reflect
        • 5.3.5 La fonction distance_to
        • 5.3.6 La fonction rotate
        • 5.3.7 La fonction rotate_rad
    • 6. Le module surfarray
      • 6.1 La fonction array2d
      • 6.2 La fonction pixels_red
      • 6.3 La fonction pixels_green
      • 6.4 La fonction pixels_blue
      • 6.5 La fonction make_surface
      • 6.6 La fonction blit_array
    • 7. Le module camera
      • 7.1 La fonction list_cameras
      • 7.2 L'objet Camera
        • 7.2.1 Instanciation de Camera
        • 7.2.2 La fonction start
        • 7.2.3 La fonction stop
        • 7.2.4 La fonction get_image
        • 7.2.5 La fonction get_raw
        • 7.2.6 La fonction query_image
        • 7.2.7 La fonction get_size
        • 7.2.8 La fonction get_controls
        • 7.2.9 La fonction set_controls
    • Index

Auteur

Benoît PRIEUREn savoir plus

Ingénieur en informatique diplômé de l'ISIMA de Clermont-Ferrand, Benoît PRIEUR conduit des missions de conseil pour le compte de sa société Soarthec. Spécialisé dans le développement en Python et en C#, il met quotidiennement en œuvre ses compétences de développement auprès de ses clients. Il est également formateur sur les technologies .NET et le développement Python.

Caractéristiques

  • Niveau Débutant à Confirmé
  • Nombre de pages 240 pages
  • Parution novembre 2019
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-409-02168-8
    • EAN : 9782409021688
    • Ref. ENI : LFPYG
  • Niveau Initié à Confirmé
  • Parution novembre 2019
    • HTML
    • ISBN : 978-2-409-02169-5
    • EAN : 9782409021695
    • Ref. ENI : LNLFPYG

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (2,77 Mo)