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
