Objectif : Maîtriser les bases de pygame pour créer une fenêtre graphique et afficher une map 2D.
ex00 — module5/ex00/windows_init.py
Output :
$> python3 windows_init.py
Objectif : Initialiser pygame et ouvrir la fenêtre graphique.
Notions :
import pygame | pygame.init() | pygame.display.set_mode((400,400)) | event.type == pygame.QUIT
Questions :
- Qu'est-ce que pygame ?
- Que veut dire
event.type? - Que représente
(400, 400)? - Pourquoi faut-il appeler
pygame.quit()à la fin ?
ex01 — module5/ex01/fill_color.py
Output :
$> python3 fill_color.py
Objectif : Remplir la fenêtre d'une couleur unie et rafraîchir l'affichage.
Notions :
screen.fill() | pygame.display.flip() | Tuple RGB
Questions :
- Qu'est-ce qu'un tuple ?
- Pourquoi utilise-t-on
pygame.display.flip()? - Que se passe-t-il si on n'appelle pas
flip()?
ex02 — module5/ex02/pixel_coords.py
Output :
$> python3 pixel_coords.py
La case en position ( 0 , 0 ) a pour coordonnées en pixels ( 0 , 0 )
La case en position ( 1 , 0 ) a pour coordonnées en pixels ( 80 , 0 )
La case en position ( 2 , 0 ) a pour coordonnées en pixels ( 160 , 0 )
...
La case en position ( 4 , 4 ) a pour coordonnées en pixels ( 320 , 320 )
Objectif : Calculer les coordonnées pixel de chaque case de la map.txt à partir de sa position dans la grille.
Notions :
for | enumerate() | pixels_x = x * taille_bloc | pixels_y = y * taille_bloc
Questions :
- Qu'est-ce que
enumerate()? - Que représente la variable
taille_bloc? - Comment passe-t-on de coordonnées de grille à des coordonnées en pixels ?
ex03 — module5/ex03/draw_grid.py
Output :
$> python3 draw_grid.py
Objectif :
Lire la map.txt, afficher les cases 1 d'une couleur et les cases 0 d'une autre couleur.
Notions :
import pygame | pygame.draw.rect() | (x * taille_bloc, y * taille_bloc, taille_bloc, taille_bloc)
Questions :
- Qu'est-ce que
pygame.draw.rect()et quels paramètres prend-il ? - Utilises-tu deux boucles
forimbriquées ? Si oui, pourquoi ?
ex04 — module5/ex04/map2.txt
Output :
11111
10001
10P01
10001
11111
Objectif :
Créer une nouvelle map avec la position initiale du joueur représentée par P.
Questions :
- Quels caractères la map peut-elle contenir ?
ex05 — module5/ex05/main.png
Objectif : Choisir une image d'un personnage à intégrer dans la fenêtre pygame.
Questions :
- Qu'est-ce qu'un sprite ?
- Quel format d'image est utilisé ici et pourquoi ?
ex06 — module5/ex06/display_player.py
Output :
$> python3 display_player.py
Objectif :
Charger et afficher le sprite du joueur sur la case P de la map via pygame.
Notions :
.convert_alpha() | pygame.transform.scale( , (taille_bloc, taille_bloc)) | screen.blit( , (x * taille_bloc, y * taille_bloc))
Questions :
- Qu'est-ce que
screen.blit()? - Qu'est-ce que
.convert_alpha()? - As-tu utilisé un calque ?