Skip to content

Latest commit

 

History

History
128 lines (91 loc) · 3.26 KB

File metadata and controls

128 lines (91 loc) · 3.26 KB

Module 5

Objectif : Maîtriser les bases de pygame pour créer une fenêtre graphique et afficher une map 2D.

ex00module5/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 ?

ex01module5/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() ?

ex02module5/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 ?

ex03module5/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 for imbriquées ? Si oui, pourquoi ?

ex04module5/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 ?

ex05module5/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 ?

ex06module5/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 ?