isn:pygame01
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
isn:pygame01 [2019/11/07 11:40] – créée techer.charles_educ-valadon-limoges.fr | isn:pygame01 [2019/11/07 15:24] (Version actuelle) – techer.charles_educ-valadon-limoges.fr | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Pygame : créer une fenêtre de jeu ====== | ||
+ | ===== Créer un projet repl.it ===== | ||
+ | * aller sur le site https:// | ||
+ | * Créer un projet Repl.it en sélectionnant **PyGame** | ||
+ | {{ : | ||
+ | |||
+ | |||
+ | ===== Créer la fenêtre de jeu ===== | ||
+ | |||
+ | Il faut tout d' | ||
+ | |||
+ | <code python> | ||
+ | import pygame | ||
+ | </ | ||
+ | |||
+ | |||
+ | Puis **initialiser** Pygame. | ||
+ | <code python> | ||
+ | pygame.init() | ||
+ | </ | ||
+ | |||
+ | Il ne reste plus qu'à définir les **dimensions** de la fenêtre de jeu : | ||
+ | * **hauteur et largeur**, | ||
+ | * **couleur** de fond. | ||
+ | Comme ces valeurs ne changeront pas tout au long du jeu, elles sont considérées comme des constantes et par convention, le nom des variables est écrit en majuscule | ||
+ | |||
+ | <code python> | ||
+ | HAUTEUR = 400 | ||
+ | LARGEUR = 400 | ||
+ | </ | ||
+ | Définir la couleur de fond : | ||
+ | <code python> | ||
+ | COULEUR_FOND = (255, 255, 255) | ||
+ | </ | ||
+ | Lancer l' | ||
+ | <code python> | ||
+ | ECRAN = pygame.display.set_mode((LARGEUR, | ||
+ | </ | ||
+ | Les deux paramètres de la fonction set_mode() sont fournis sous la forme d'un **tuple** : | ||
+ | | ||
+ | |||
+ | ===== La boucle du jeu ===== | ||
+ | |||
+ | La **boucle de jeu** ou boucle d’animation, | ||
+ | |||
+ | Il est pratique d' | ||
+ | * si sa valeur est **True**, la boucle se poursuit, | ||
+ | * si sa valeur est **False**, | ||
+ | <code python> | ||
+ | ARRET = False | ||
+ | while not ARRET: | ||
+ | # instructions de la boucle infinie | ||
+ | </ | ||
+ | |||
+ | Durant cette boucle de jeu, le programme : | ||
+ | * prend en compte les **actions** (entrées) du joueur | ||
+ | * **met à jour** les éléments du jeu, | ||
+ | * **rafraîchit** (redessine) l' | ||
+ | |||
+ | Chaque itération devrait avoir la même durée que toutes les autres pour permettre une fluidité dans le déroulement du jeu et en général Pygame réalise 30 itérations par seconde (**30 images par seconde**). | ||
+ | |||
+ | Pour la couleur de fond : | ||
+ | * la fonction **fill()** permet de **remplir un élément** avec une couleur passée en paramètre (tuple de 3 valeurs) | ||
+ | * la fonction **pygame.display.update()** permet de rafraîchir l' | ||
+ | |||
+ | La fonction **pygame.event.get()** permet d’intercepter tous les événements entrants notamment depuis le clavier, la souris, etc. Si on appuie sur la touche [Esc], alors le jeu est interrompu. Ceci est permis en utilisant les évènements du clavier suivants : | ||
+ | * pour savoir si une touche a été appuyée | ||
+ | * pour connaître s'il s'agit de le touche [Esc] ou [Echap] | ||
+ | |||
+ | <code python> | ||
+ | for event in pygame.event.get(): | ||
+ | if event.type == pygame.KEYDOWN: | ||
+ | if event.key == pygame.K_ESCAPE: | ||
+ | ARRET = True | ||
+ | </ | ||
+ | |||
+ | ===== Le système de coordonnées Pygame ===== | ||
+ | |||
+ | L’écran est muni d’un système de **coordonnées orthonormé**. | ||
+ | |||
+ | L’origine du repère, le point (0, 0), est le **point supérieur gauche de l’écran**. | ||
+ | |||
+ | L’**axe des x** est l’axe **horizontal orienté vers la droite**. | ||
+ | |||
+ | L’**axe des y** est l’axe **vertical orienté vers le ba**s. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ===== Programme complet : ===== | ||
+ | |||
+ | <code python> | ||
+ | import pygame | ||
+ | pygame.init() | ||
+ | HAUTEUR = 600 | ||
+ | LARGEUR = 600 | ||
+ | COULEUR_FOND = (255, 255, 255) | ||
+ | ECRAN = pygame.display.set_mode((LARGEUR, | ||
+ | ARRET = False | ||
+ | while not ARRET: | ||
+ | | ||
+ | | ||
+ | for event in pygame.event.get(): | ||
+ | if event.type == pygame.KEYDOWN: | ||
+ | if event.key == pygame.K_ESCAPE: | ||
+ | ARRET = True | ||
+ | </ | ||
+ | |||
+ | https:// | ||
+ | < | ||
+ | <iframe height=" | ||
+ | </ | ||
+ | |||
+ | |||
==== Les activités ... ==== | ==== Les activités ... ==== | ||
<WRAP center round info > | <WRAP center round info > |
isn/pygame01.1573123234.txt.gz · Dernière modification : 2019/11/07 11:40 de techer.charles_educ-valadon-limoges.fr