Outils pour utilisateurs

Outils du site


isn:pygame01

Pygame : créer une fenêtre de jeu

Créer un projet repl.it

  • aller sur le site https://repl.it/
  • Créer un projet Repl.it en sélectionnant PyGame

Créer la fenêtre de jeu

Il faut tout d'abord importer la bibliothèque Pygame.

import pygame

Puis initialiser Pygame.

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

HAUTEUR = 400 
LARGEUR = 400

Définir la couleur de fond :

COULEUR_FOND = (255, 255, 255)

Lancer l'affichage de la fenêtre de jeu :

ECRAN = pygame.display.set_mode((LARGEUR, HAUTEUR))

Les deux paramètres de la fonction set_mode() sont fournis sous la forme d'un tuple : (LARGEUR, HAUTEUR)

La boucle du jeu

La boucle de jeu ou boucle d’animation, est une notion fondamentale dans les jeux. Elle correspond à une boucle infinie qu'il faudra interrompre pour quitter le jeu. Pour cela, on code une action utilisateur comme par exemple l'appui sur la touche [Esc] du clavier.

Il est pratique d'utiliser une variable booléenne :

  • si sa valeur est True, la boucle se poursuit,
  • si sa valeur est False, elle s’interrompt.
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 ou du système,
  • met à jour les éléments du jeu,
  • rafraîchit (redessine) l'écran.

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'écran.

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 : pygame.KEYDOWN
  • pour connaître s'il s'agit de le touche [Esc] ou [Echap] : pygame.K_ESCAPE
   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 bas.

Programme complet :

import pygame 
pygame.init() 
HAUTEUR = 600 
LARGEUR = 600
COULEUR_FOND = (255, 255, 255)
ECRAN = pygame.display.set_mode((LARGEUR, HAUTEUR))
ARRET = False
while not ARRET: 
   ECRAN.fill(COULEUR_FOND)
   pygame.display.update() 
   for event in pygame.event.get(): 
       if event.type == pygame.KEYDOWN: 
           if event.key == pygame.K_ESCAPE: 
               ARRET = True

https://repl.it/@charlestecher/pygame-1

Les activités ...

isn/pygame01.txt · Dernière modification: 2019/11/07 15:24 de techer.charles_educ-valadon-limoges.fr