Première - TP - Dessiner des formes simples avec Pygame

Différentes formes

Parmi les différentes formes que Pygame peut représenter, on peut citer le rectangle, le cercle et la ligne.
Voici un exemple d'utilisation :

import pygame

pygame.init()
screen = pygame.display.set_mode((800, 600))
clock = pygame.time.Clock()

BLACK = (0,0,0)

running = True

while running:
    
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill(BLACK)

    # Rectangle rouge
    pygame.draw.rect(screen, (255, 0, 0), [50, 50, 100, 100])

    # Cercle vert
    pygame.draw.circle(screen, (0, 255, 0), [300, 300], 50)

    # Ligne bleue
    pygame.draw.line(screen, (0, 0, 255), (300, 50), (500, 300), 2)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Analysons chacune de ces nouvelles instructions :

On peut rajouter un dernier argument facultatif aux commandes pygame.draw.rect et pygame.draw.circle : l'épaisseur. Seul le contour de la forme est alors dessiné.

Coordonnées cartésiennes

Afin d’afficher des objets sur notre écran, il est nécessaire de comprendre le système de coordonnées utilisé par Pygame (et par la majorité des modules graphiques, tous langages confondus).

Chaque pixel de notre fenêtre est repéré par ses coordonnées cartésiennes, c’est à dire une abscisse $x$ et une ordonnée $y$. Le repère utilisé est orthonormé, mais l’axe des ordonnées est dirigé vers le bas, et l’origine du repère se situe en haut à gauche de l’écran.

Polygones

Pour dessiner un polygone avec Pygame, on commence par définir une liste de points, puis on trace le polygone avec la commande pygame.draw.polygon :

points = [(200, 100), (400, 100), (450, 200), (300, 300), (150, 200)]
pygame.draw.polygon(screen, (0, 0, 255), points)

Comme pour les rectangles et les cercles, on peut préciser une épaisseur afin de dessiner seulement le contour.

Drapeaux simples

À l'aide de Pygame, dessiner les drapeaux des pays suivants :

On pourra créer une fonction pour chaque drapeau...
Des cercles
  1. Créer la cible colorée suivante :

  2. Créer une fonction cercles(n) qui dessine n cercles concentriques de la façon suivante :

Arc-en-ciel

Dessiner un arc-en-ciel avec Pygame !

Voir la fonction pygame.draw.arc...