tres bien, clair et bien documenté je l'avais decouvert en bibliothèque et j'ai décidé de l'acheter, je suis un passionné de python et souhaite me lancer dans les jeux...
jacques dPygame Initiez-vous au développement de jeux vidéo en Python (2e édition)
1 avis
Dans ce livre, l'auteur commence par présenter les bases de Python avant de détailler la structure d'un jeu Pygame. Les chapitres suivants explorent la boucle de jeu, les aspects graphiques avec le module pygame.draw, le son avec le module pygame.mixer, la gestion du temps et les collisions entre objets graphiques grâce à la notion de sprite. Une introduction à la 3D et aux moteurs de jeu est également proposée, suivie d'une documentation des principaux modules Pygame utilisés dans le livre.
Consulter des extraits du livre en ligne
Aperçu du livre papier
- Niveau Initié à Confirmé
- Nombre de pages 265 pages
- Parution mars 2023
- Niveau Initié à Confirmé
- Parution mars 2023
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.
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.
Téléchargements
Fondamentaux du langage Python
- 1. Introduction
- 2. Caractéristiques du langage Python
- 2.1 Langage interprété
- 2.2 Typage dynamique fort
- 2.3 Multi-paradigme
- 2.4 Licence libre
- 2.5 Multi-plateforme
- 3. Installation de Python
- 3.1 Installation de Python sur Windows
- 3.2 Installation de Python sur macOS
- 3.3 Installation de Python sur Linux
- 4. Première utilisation de Python en ligne de commande
- 4.1 Plusieurs versions de Python
- 4.2 Vérification de la version
- 4.3 Première utilisation
- 5. Premiers pas en Python
- 5.1 Premières instructions
- 5.2 Utilisation d'un fichier Python
- 5.3 Indentation en Python
- 5.4 Variables et fonctions en Python
- 5.4.1 Déclarer et utiliser une variable
- 5.4.2 Déclarer et utiliser une fonction
- 5.5 Un mot sur les modules en Python
- 5.5.1 Le mot-clé import
- 5.5.2 Un mot sur __main__
- 5.6 Boucles et conditions en Python
- 5.6.1 La boucle while
- 5.6.2 La boucle for
- 5.6.3 Les conditions avec if...else...elif
- 5.7 Les structures de données en Python
- 5.8 Exemple de listes
- 5.9 Exemple de tuples
- 5.10 Exemple d'ensembles
- 5.11 Exemple de dictionnaire
Notions avancées en langage Python
- 1. Introduction
- 2. La programmation orientée objet
- 2.1 Introduction
- 2.2 Les classes en Python
- 2.3 Un mot sur l'héritage et le polymorphisme
- 2.3.1 L'héritage
- 2.3.2 Le polymorphisme
- 2.4 Conclusion
- 3.1 Contexte
- 3.2 Petit exemple théorique
- 4.1 Contexte
- 4.2 L'esprit de la PEP8
- 4.3 Principes généraux et outils
- 4.3.1 Principes de la PEP8
- 4.3.2 Quelques outils
Concepts du jeu vidéo et premiers pas à propos de Pygame
- 1. Introduction
- 2. La boucle de jeu
- 3. Présentation de Pygame
- 4. Installation de Pygame
- 5. Les modules composant Pygame
- 6. Réalisation d'un premier jeu graphique : fusée et planètes
- 6.1 Les images utilisées
- 6.2 La fenêtre du jeu
- 6.3 La boucle du jeu
- 6.4 Le système de coordonnées Pygame
- 6.5 Les variables du jeu
- 6.5.1 Les variables liées à la fusée
- 6.5.2 Les variables liées aux deux planètes qui « tombent »
- 6.5.3 Les variables relatives au comptage des points
- 6.5.4 Les variables relatives aux images
- 6.6 Les déplacements de la fusée
- 6.7 Les déplacements des planètes
- 6.8 Les collisions
- 6.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
- 10.1 Premier exemple
- 10.2 Deuxième exemple
Le dessin et le graphisme dans tous leurs é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 Enregistrer des images avec 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.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.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.1 Les modules pygame.mixer et pygame.mixer.music
- 2.2 Les fichiers son
- 2.3 La notion de channel (canal) dans 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.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
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.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
- 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
- 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
Travailler en 3D avec Pygame
- 1. Introduction
- 2. La bibliothèque 3D OpenGL
- 3. OpenGL en Python/Pygame
- 3.1 PyOpenGL
- 3.2 Les notions fondamentales : sommet et arête
- 3.3 PyOpenGL et Pygame
- 4. PyOpenGL/Pygame : l’exemple du cube
- 4.1 Le code global
- 4.2 Explication détaillée du code
- 5. Plus loin avec PyOpenGL/Pygame : l’exemple du cube (suite)
- 5.1 Le code global
- 5.2 Explication détaillée du code
- 6. OpenGL en Python et macOS
- 7. La notion de moteur de jeu vidéo
- 7.1 Définition
- 7.2 Créer son propre moteur de jeu ?
- 7.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.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.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.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.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.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.1 La fonction load
- 8.2 La fonction save
- 8.3 Les fonctions tostring, fromstring, frombuffer
- 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.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.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.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.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.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.
- 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.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.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.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.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.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.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.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
Benoît PRIEUR
Benoît PRIEUR est ingénieur logiciel et enseignant en informatique, diplômé de l'ISIMA de Clermont-Ferrand. Avec une expérience de vingt ans, il est spécialisé dans le développement logiciel, notamment avec les langages Python, C++, Rust et C#. Il est également expert en Machine Learning, en particulier dans le domaine du NLP et auteur de plusieurs ouvrages aux Éditions ENI depuis 2017, couvrant un large éventail de sujets tels que l'informatique quantique, l'industrie 4.0 et le Machine Learning. En tant que formateur et conférencier, il partage régulièrement ses connaissances sur ces technologies émergentes, et contribue à la communauté en écrivant des articles sur la programmation de logiciels.
Benoît Prieur reverse 100 % de ses droits d'auteur du livre Traitement automatique du langage naturel avec Python à l'association AGBU (Union générale arménienne de bienfaisance).
En savoir plusBenoît Prieur reverse 100 % de ses droits d'auteur du livre Traitement automatique du langage naturel avec Python à l'association AGBU (Union générale arménienne de bienfaisance).