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 = 600 LARGEUR = 600

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

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.flip() 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

while not ARRET: for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: ARRET = True

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.flip() for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: ARRET = True

Les activités ...

Je reviens à la liste des activités.