• Aide
  • Eurêkoi Eurêkoi

Livre

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

Résumé

Un guide pour apprendre à développer des jeux vidéo avec Pygame, framework dérivé du langage de programmation Python. Les principaux aspects du développement d'un jeu en deux dimensions sont abordés : gestion d'une boucle de jeu et de la dimension temps, maîtrise des aspects graphiques et des collisions entre objets grâce à la notion de sprite, ajout du son, entre autres.


  • Éditeur(s)
  • Date
    • C 2023
  • Notes
    • La couv. porte en plus : "En téléchargement : code source" ; "+ quiz" ; "Version en ligne offerte ! pendant 1 an"
    • La 4e de couv. indique : "À télécharger sur www.editions-eni.fr : code source des exemples du livre"
    • Contient un "flashcode" permettant d'accéder à un contenu via Internet"
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (265 p.) : ill. ; 21 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-409-03907-2
  • Indice
  • Quatrième de couverture
    • Pygame

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

      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 .


  • Tables des matières
      • Pygame

      • Initiez-vous au de jeux vidéo en Python

      • 2e édition

      • Avant-propos
      • Chapitre 1
      • Fondamentaux du langage Python
      • 1. Introduction17
      • 2. Caractéristiques du langage Python17
      • 2.1 Langage interprété17
      • 2.2 Typage dynamique fort18
      • 2.3 Multi-paradigme18
      • 2.4 Licence libre18
      • 2.5 Multi-plateforme18
      • 3. Installation de Python19
      • 3.1 Installation de Python sur Windows19
      • 3.2 Installation de Python sur macOS19
      • 3.3 Installation de Python sur Linux19
      • 4. Première utilisation de Python en ligne de commande19
      • 4.1 Plusieurs versions de Python19
      • 4.2 Vérification de la version20
      • 4.3 Première utilisation20
      • 5. Premiers pas en Python21
      • 5.1 Premières instructions21
      • 5.2 Utilisation d'un fichier Python22
      • 5.3 Indentation en Python23
      • 5.4 Variables et fonctions en Python23
      • 5.4.1 Déclarer et utiliser une variable23
      • 5.4.2 Déclarer et utiliser une fonction26
      • 5.5 Un mot sur les modules en Python27
      • 5.5.1 Le mot-clé import27
      • 5.5.2 Un mot sur_main_28
      • 5.6 Boucles et conditions en Python29
      • 5.6.1 La boucle while29
      • 5.6.2 La boucle for29
      • 5.6.3 Les conditions avec if...else...elif30
      • 5.7 Les structures de données en Python30
      • 5.8 Exemple de listes31
      • 5.9 Exemple de tuples32
      • 5.10 Exemple d'ensembles32
      • 5.11 Exemple de dictionnaire32
      • 6. Conclusion33
      • Chapitre 2
      • Notions avancées en langage Python
      • 1. Introduction35
      • 2. La programmation orientée objet35
      • 2.1 Introduction35
      • 2.2 Les classes en Python36
      • 2.3 Un mot sur l'héritage et le polymorphisme39
      • 2.3.1 L'héritage39
      • 2.3.2 Le polymorphisme40
      • 2.4 Conclusion40
      • 3. L'environnement virtuel41
      • 3.1 Contexte41
      • 3.2 Petit exemple théorique41
      • 4. La PEP842
      • 4.1 Contexte42
      • 4.2 L'esprit de la PEP843
      • 4.3 Principes généraux et outils43
      • 4.3.1 Principes de la PEP843
      • 4.3.2 Quelques outils44
      • Chapitre 3
      • Concepts du jeu vidéo et premiers pas à propos de Pygame
      • 1. Introduction45
      • 2. La boucle de jeu45
      • 3. Présentation de Pygame46
      • 4. Installation de Pygame47
      • 5. Les modules composant Pygame48
      • 6. Réalisation d'un premier jeu graphique : fusée et planètes49
      • 6.1 Les images utilisées49
      • 6.2 La fenêtre du jeu50
      • 6.3 La boucle du jeu51
      • 6.4 Le système de coordonnées Pygame52
      • 6.5 Les variables du jeu53
      • 6.5.1 Les variables liées à la fusée53
      • 6.5.2 Les variables liées aux deux planètes qui « tombent »54
      • 6.5.3 Les variables relatives au comptage des points54
      • 6.5.4 Les variables relatives aux images54
      • 6.6 Les déplacements de la fusée56
      • 6.7 Les déplacements des planètes57
      • 6.8 Les collisions58
      • 6.9 Le code complet59
      • Chapitre 4
      • La structure d'un jeu Pygame
      • 1. Introduction63
      • 2. Initialisation64
      • 3. Aide en ligne de commande64
      • 4. Affichage de la fenêtre64
      • 4.1 Le tuple size de set_mode65
      • 4.2 Le paramètre flags de set_mode65
      • 5. Rappels concernant la boucle de jeu66
      • 6. Les surfaces Pygame67
      • 6.1 Définition d'une surface67
      • 6.2 La fenêtre de jeu, une surface particulière68
      • 6.3 Exemple de manipulation d'une surface68
      • 6.4 Manipulation de la surface69
      • 6.5 Surface ou copie de surface ?69
      • 6.6 Coloration de la surface70
      • 7. Gestion des couleurs70
      • 8. Système de coordonnées71
      • 9. Gestion du temps et des événements74
      • 9.1 Gestion du temps dans Pygame74
      • 9.2 Gestion des événements dans Pygame75
      • 9.2.1 La fonction pygame.event.get75
      • 9.2.2 La fonction pygame.event.wait76
      • 9.2.3 La fonction pygame.event.poll76
      • 9.3 Un exemple : le carré qui rebondit76
      • 10. Les codes globaux des deux exemples78
      • 10.1 Premier exemple78
      • 10.2 Deuxième exemple79
      • Chapitre 5
      • Le dessin et le graphisme dans tous leurs états avec Pygame
      • 1. Introduction81
      • 2. Dessiner des formes avec Pygame82
      • 2.1 Le module pygame.draw82
      • 2.2 Dessiner une ligne82
      • 2.3 Dessiner une ligne brisée83
      • 2.4 Dessiner un rectangle84
      • 2.5 Dessiner un polygone84
      • 2.6 Dessiner un cercle85
      • 2.7 Dessiner une ellipse85
      • 2.8 Dessiner un arc de cercle86
      • 2.9 L'anti-aliasing89
      • 3. Afficher et sauvegarder des images avec Pygame90
      • 3.1 Le module pygame.image90
      • 3.2 Charger des images avec Pygame91
      • 3.2.1 La fonction pygame.draw.load91
      • 3.2.2 La bonne pratique de l'appel de convert()91
      • 3.2.3 Exemple de chargement et d'affichage d'une image92
      • 3.3 Enregistrer des images avec Pygame93
      • 4. Utiliser et manipuler du texte dans Pygame95
      • 4.1 Le module pygame.font95
      • 4.2 Utiliser des polices de caractères système avec Pygame95
      • 4.3 Utiliser ses propres polices de caractères avec Pygame97
      • 5. Concevoir un logiciel de dessin avec Pygame97
      • 5.1 Gérer les événements de la souris ou du clavier en Pygame97
      • 5.2 Première version du logiciel : afficher le tracé réalisé avec la souris99
      • 5.3 Seconde version du logiciel : améliorations diverses101
      • 5.3.1 Amélioration de l'expérience du tracé101
      • 5.3.2 Ajout de fonctionnalités (couleur, épaisseur, etc.)101
      • 6. Appliquer des transformations géométriques dans Pygame104
      • 6.1 Le module pygame.transform104
      • 6.2 Exemple d'utilisation des transformations Pygame104
      • 7. Conclusion107
      • Chapitre 6
      • L'ajout de sons dans un jeu Pygame
      • 1. Introduction109
      • 2. La gestion du son avec Pygame109
      • 2.1 Les modules pygame.mixer et pygame.mixer.music110
      • 2.1.1 Le module pygame.mixer.music (fond sonore)110
      • 2.1.2 Le module pygame.mixer (effets sonores)110
      • 2.2 Les fichiers son111
      • 2.3 La notion de channel (canal) dans Pygame111
      • 3. Exemple d'utilisation du son avec Pygame112
      • 4. Conclusion114
      • Chapitre 7
      • Les sprites avec Pygame
      • 1. La notion de sprite dans Pygame115
      • 2. La notion de group dans Pygame116
      • 3. Une gestion des collisions simplifiée116
      • 4. Quelques explications sur la programmation orientée objet117
      • 4.1 Le paradigme objet, les grandes lignes117
      • 4.2 L'héritage118
      • 4.3 Des mots-clés fondamentaux en Python119
      • 4.3.1 Le mot-clé self119
      • 4.3.2 Le mot-clé class119
      • 4.3.3 Le mot-clé def120
      • 4.3.4 _init_120
      • 4.4 L'exemple de la classe Voiture en Python120
      • 4.5 Ce que l'on savait déjà... sans le savoir122
      • 5. Le module sprite et son utilisation122
      • 5.1 Le contenu du module sprite122
      • 5.2 Création d'un sprite123
      • 5.2.1 Premier exemple d'utilisation123
      • 5.2.2 Retour sur le premier exemple127
      • 5.3 Gros plan sur l'attribut rect de la classe Sprite127
      • 5.4 La liste de sprites (group)128
      • 5.5 Gestion des collisions grâce aux sprites129
      • 6. Conclusion du chapitre130
      • Chapitre 8
      • Plus loin avec le module sprite, exemples appliqués
      • 1. Introduction131
      • 2. Le jeu du serpent (snake)132
      • 2.1 Le contexte132
      • 2.2 Les images utilisées132
      • 2.3 Les effets sonores utilisés133
      • 2.4 Le programme global133
      • 2.5 Les listes de sprites (group)137
      • 2.6 Les variables globales137
      • 2.7 Les classes138
      • 2.7.1 La classe SERPENT138
      • 2.7.2 La classe CORPS141
      • 2.7.3 La classe NOURRITURE142
      • 2.8 Le programme lui-même143
      • 2.8.1 La fonction AFFICHER_SCORE143
      • 2.8.2 Le corps du programme143
      • 3. Le jeu du labyrinthe145
      • 3.1 Le contexte145
      • 3.2 Conception du labyrinthe145
      • 3.3 Les images utilisées146
      • 3.4 Le programme global147
      • 3.5 Les listes de sprites (group)151
      • 3.6 Les classes151
      • 3.6.1 La classe MUR151
      • 3.6.2 La classe OBJET151
      • 3.6.3 La classe Chrono152
      • 3.6.4 La classe PERSONNAGE152
      • 3.7 Le programme lui-même153
      • 4. Le jeu de casse-briques154
      • 4.1 Le contexte154
      • 4.2 Les images utilisées155
      • 4.3 Le programme global155
      • 4.4 Les listes de sprites (group)158
      • 4.5 Les constantes159
      • 4.6 Les classes159
      • 4.6.1 La classe OBJET160
      • 4.6.2 La classe RAQUETTE161
      • 4.6.3 La classe BRIQUE162
      • 4.6.4 La classe BALLE162
      • 4.7 Le programme lui-même163
      • 5. Le jeu de défilement : Fusée et planètes (version 2)166
      • 5.1 Le contexte166
      • 5.2 Le programme global167
      • 5.3 Les listes de sprites (group)169
      • 5.4 Les classes169
      • 5.4.1 La classe FUSEE169
      • 5.4.2 La classe PLANETE170
      • 5.5 Le programme lui-même171
      • Chapitre 9
      • Travailler en 3D avec Pygame
      • 1. Introduction173
      • 2. La bibliothèque 30 OpenGL174
      • 3. OpenGL en Python/Pygame174
      • 3.1 PyOpenGL174
      • 3.2 Les notions fondamentales ; sommet et arête174
      • 3.3 PyOpenGL et Pygame175
      • 4. PyOpenGL/Pygame : l'exemple du cube175
      • 4.1 Le code global175
      • 4.2 Explication détaillée du code177
      • 5. Plus loin avec PyOpenGL/Pygame : l'exemple du cube (suite)180
      • 5.1 Le code global181
      • 5.2 Explication détaillée du code183
      • 6. OpenGL en Python et macOS184
      • 7. La notion de moteur de jeu vidéo185
      • 7.1 Définition185
      • 7.2 Créer son propre moteur de jeu ?186
      • 7.3 Une ébauche de moteur de jeu186
      • Chapitre10
      • Les principaux modules Pygame
      • 1. Introduction189
      • 2. L'objet Color190
      • 2.1 La classe Color190
      • 2.2 Les constructeurs de Color191
      • 2.3 Les principales fonctions de la classe Color191
      • 2.4 Les fonctions associées aux autres représentations de la couleur192
      • 2.4.1 La représentation CMY192
      • 2.4.2 La représentation HSV et HSL192
      • 2.4.3 La représentation |1|2|3192
      • 2.5 Les autres fonctions192
      • 2.5.1 La fonction normalize192
      • 2.5.2 La fonction correct_gamma193
      • 2.5.3 La fonction set_length193
      • 3. Le module time193
      • 3.1 La fonction get_ticks193
      • 3.2 La fonction wait194
      • 3.3 La fonction delay194
      • 3.4 La fonction set_timer194
      • 3.5 L'objet Clock195
      • 3.5.1 Création d'une instance195
      • 3.5.2 La fonction tick195
      • 3.5.3 La fonction get_time196
      • 3.5.4 La fonction get_fps196
      • 4. Le module event197
      • 4.1 La fonction pump197
      • 4.2 La fonction get198
      • 4.3 La fonction poll198
      • 4.4 La fonction wait198
      • 4.5 La fonction peek199
      • 4.6 La fonction clear199
      • 4.7 La fonction event_name199
      • 4.8 La fonction set_blocked200
      • 4.9 La fonction set_allowed200
      • 5. Le module display200
      • 5.1 La fonction init200
      • 5.2 La fonction quit201
      • 5.3 La fonction get_init201
      • 5.4 La fonction set_mode201
      • 5.5 La fonction flip202
      • 5.6 La fonction update202
      • 5.7 La fonction set_icon202
      • 5.8 La fonction set_caption202
      • 6. L'objet Surface203
      • 6.1 Le constructeur de Surface203
      • 6.2 La fonction blit203
      • 6.3 La fonction blits204
      • 6.4 Les fonctions convert et convert_alpha205
      • 6.5 La fonction copy205
      • 6.6 La fonction fill206
      • 6.7 La fonction scroll206
      • 6.8 La fonction set_colorkey207
      • 6.9 La fonction get_colorkey207
      • 7. Le module draw208
      • 7.1 La fonction rect208
      • 7.2 La fonction polygon208
      • 7.3 La fonction circle208
      • 7.4 La fonction ellipse209
      • 7.5 La fonction arc209
      • 7.6 La fonction line210
      • 7.7 La fonction lines210
      • 7.8 Les fonctions aaline et aalines210
      • 8. Le module image211
      • 8.1 La fonction load211
      • 8.2 La fonction save211
      • 8.3 Les fonctions tostring, fromstring, frombuffer212
      • 9. Le module font212
      • 9.1 La fonction init212
      • 9.2 La fonction quit212
      • 9.3 La fonction get_init212
      • 9.4 La fonction get_default_font213
      • 9.5 La fonction get_fonts213
      • 9.6 La fonction match_font213
      • 9.7 La fonction SysFont214
      • 9.8 L'objet Font214
      • 9.8.1 La fonction Font214
      • 9.8.2 La fonction render214
      • 9.8.3 La fonction size215
      • 9.8.4 La fonction set_underline215
      • 9.8.5 La fonction get_underline215
      • 9.8.6 La fonction set_bold215
      • 9.8.7 La fonction get_bold215
      • 9.8.8 La fonction set_italic216
      • 9.8.9 La fonction get_italic216
      • 9.8.10 La fonction metrics216
      • 10. Le module mouse216
      • 10.1 La fonction get_pressed216
      • 10.2 La fonction get_pos217
      • 10.3 La fonction get_rel217
      • 10.4 La fonction set_pos218
      • 10.5 La fonction set_visible218
      • 10.6 La fonction get_visible218
      • 10.7 La fonction get_focused218
      • 10.8 La fonction set_cursor218
      • 10.9 La fonction get_cursor218
      • 11. Le module key219
      • 11.1 Les constantes correspondant aux touches du clavier219
      • 11.2 La fonction get_focused221
      • 11.3 La fonction pressed221
      • 11.4 La fonction set_repeat221
      • 11.5 La fonction get_repeat222
      • 11.6 La fonction name222
      • 12. Le module transform222
      • 12.1 La fonction flip222
      • 12.2 La fonction scale222
      • 12.3 La fonction rotate223
      • 12.4 La fonction rotozoom223
      • 12.5 La fonction scale2x223
      • 12.6 La fonction chop223
      • 12.7 La fonction laplacian224
      • 12.8 La fonction average_surfaces225
      • 12.9 La fonction average_color225
      • 13. Le module mixer225
      • 13.1 La fonction init225
      • 13.2 La fonction quit226
      • 13.3 La fonction get_init226
      • 13.4 L'objet Sound226
      • 13.4.1 Les constructeurs de Sound226
      • 13.4.2 La fonction play226
      • 13.4.3 La fonction stop227
      • 13.4.4 La fonction fadeout227
      • 13.4.5 La fonction set_volume227
      • 13.4.6 La fonction get_volume227
      • 13.4.7 La fonction get_num_channels227
      • 13.4.8 La fonction get_length228
      • 13.4.9 La fonction get_raw228
      • 13.5 L'objet Channel229
      • 13.5.1 Le constructeur de Channel229
      • 13.5.2 La fonction queue229
      • 13.5.3 La fonction set_volume229
      • 13.5.4 La fonction get_volume229
      • 13.5.5 Les fonctions play, stop, pause, etc230
      • 13.6 Les fonctions get_num_channels, set_num_channels, find_channel230
      • 14. Le module music231
      • 14.1 La fonction load231
      • 14.2 La fonction unload231
      • 14.3 La fonction play231
      • 14.4 La fonction rewind231
      • 14.5 La fonction stop232
      • 14.6 La fonction pause232
      • 14.7 La fonction unpause232
      • 14.8 La fonction fadeout232
      • 14.9 La fonction set_volume232
      • 14.10 La fonction get_volume232
      • 14.11 La fonction set_pos232
      • 14.12 La fonction get_pos233
      • 14.13 La fonction queue233
      • 15. Le module sprite233
      • 15.1 La classe Sprite233
      • 15.1.1 La fonction update233
      • 15.1.2 La fonction add233
      • 15.1.3 La fonction remove233
      • 15.1.4 La fonction kill234
      • 15.1.5 La fonction alive234
      • 15.1.6 La fonction groups234
      • 15.2 La classe Group234
      • 15.2.1 La fonction sprites234
      • 15.2.2 La fonction copy234
      • 15.2.3 La fonction add234
      • 15.2.4 La fonction remove235
      • 15.2.5 La fonction has235
      • 15.2.6 La fonction update235
      • 15.2.7 La fonction draw235
      • 15.2.8 La fonction clear235
      • 15.2.9 La fonction empty235
      • 15.3 Les principales fonctions du module236
      • 15.3.1 La fonction spritecollide236
      • 15.3.2 La fonction collide_rect236
      • 15.3.3 La fonction collide_circle236
      • 15.3.4 La fonction collide_mask236
      • 15.3.5 La fonction groupcollide236
      • 15.3.6 La fonction spritecollideany237
      • Chapitre11
      • Les modules secondaires Pygame
      • 1. Introduction239
      • 2. Le module cursors240
      • 2.1 Les curseurs prédéfinis du module240
      • 2.2 La fonction compile241
      • 2.3 La fonction load_xbm241
      • 3. Le module joystick242
      • 3.1 La fonction init242
      • 3.2 La fonction quit242
      • 3.3 La fonction get_init242
      • 3.4 La fonction get_count242
      • 3.5 La classe Joystick243
      • 3.5.1 La fonction Joystick243
      • 3.5.2 La fonction init243
      • 3.5.3 La fonction quit243
      • 3.5.4 La fonction get_init243
      • 3.5.5 La fonction get_id243
      • 3.5.6 La fonction get_name244
      • 3.5.7 La fonction get_numaxes244
      • 3.5.8 La fonction get_axis244
      • 3.5.9 La fonction get_numballs244
      • 3.5.10 La fonction get_ball244
      • 3.5.11 La fonction get_numbuttons245
      • 3.5.12 La fonction get_button245
      • 3.5.13 La fonction get_numhats245
      • 3.5.14 La fonction get_hat245
      • 4. Le module touch246
      • 4.1 La fonction get_num_devices246
      • 4.2 La fonction get_device246
      • 4.3 La fonction get_num_fingers246
      • 4.4 La fonction get_finger246
      • 5. Le module math247
      • 5.1 La classe Vector2 - Création de vecteur247
      • 5.2 La classe Vector3 - Création de vecteur247
      • 5.3 Les principales fonctions de Vector2 et Vector3248
      • 5.3.1 La fonction dot248
      • 5.3.2 La fonction length248
      • 5.3.3 La fonction normalize248
      • 5.3.4 La fonction reflect248
      • 5.3.5 La fonction distance_to248
      • 5.3.6 La fonction rotate249
      • 5.3.7 La fonction rotate_rad249
      • 6. Le module sur farray249
      • 6.1 La fonction array2d249
      • 6.2 La fonction pixels_red249
      • 6.3 La fonction pixels_green249
      • 6.4 La fonction pixels_blue250
      • 6.5 La fonction make_surface250
      • 6.6 La fonction blit_array250
      • 7. Le module camera250
      • 7.1 La fonction list_cameras251
      • 7.2 L'objet Camera251
      • 7.2.1 Instanciation de Camera251
      • 7.2.2 La fonction start252
      • 7.2.3 La fonction stop252
      • 7.2.4 La fonction get_image252
      • 7.2.5 La fonction get_raw252
      • 7.2.6 La fonction query_image252
      • 7.2.7 La fonction get_size252
      • 7.2.8 La fonction get_controls253
      • 7.2.9 La fonction set_controls253
      • Index255

  • Origine de la notice:
    • BPI
  • Disponible - 681.234 PRI

    Etage 3 - Informatique - Informatique