Les objets de type Surface : Créer une surface et dessiner

Quelques méthodes pour dessiner

Dessiner une ligne

Les lignes se dessinent à l'aide de la méthode pygame.draw.line().

Cette méthode renvoie un objet de type Rect.

Méthode
Description
pygame.draw.line(surface, color, pos_a, pos_b, epaisseur) -> rect
Dessine une ligne. pos_a et pos_b sont des tuples correspondant à des coordonnées.

Dessiner un rectangle

Les réctangles se dessinent à l'aide de la méthode pygame.draw.rect().

Cette méthode renvoie un objet de type Rect.

Méthode
Description
pygame.draw.rect(surface, color, rect) -> rect
Dessine un rectangle plein.
pygame.draw.rect(surface, color, rect, width) -> rect
Dessine le contour d'un rectangle.

Dessiner un cercle

Les cercles se dessinent à l'aide de la méthode pygame.draw.circle().

Cette méthode renvoie un objet de type Rect.

Méthode
Description
pygame.draw.circle(surface, color, center, radius) -> rect
Dessine un cercle plein.
pygame.draw.rect(surface, color, rect, epaisseur) -> rect
Dessine le contour d'un cercle.
pygame.draw.circle(surface, color, center, radius, epaisseur) -> rect
Dessine le contour d'un rectangle.

Exemple

Dessiner directement dans la surface de la fenêtre générale

import pygame
LARGEUR = 800
HAUTEUR = 600
GRIS = (150, 150, 150)
ROUGE = (255, 0, 0)
BLEU = (0, 0, 255)
fen = pygame.display.set_mode((LARGEUR, HAUTEUR))
fen.fill(GRIS)
pygame.draw.line(fen, ROUGE, (10,50), (210,50), 2)
pygame.draw.line(fen, BLEU, (210,50), (210,250), 6)
pygame.display.flip()
pygame.quit()

Dessiner dans une surface et afficher cette surface dans la surface de la fenêtre générale

import pygame
pygame.init()

couleur_fond = (50, 50, 50)
couleur1 = (50, 200, 50)
couleur2 = (205, 205, 30)
couleur3 = (200, 100, 50)

surface_fenetre = pygame.display.set_mode((400, 300))

# Création d'une surface de dessin et coloration de cette surface
surface_dessin = pygame.Surface((180, 150))
surface_dessin.fill(couleur_fond)

# Ajout de dessins sur la surface de dessin
pygame.draw.line(surface_dessin, couleur1, (20,250), (100,30), 3)
pygame.draw.rect(surface_dessin, couleur2, ((40,10),(50,30)), 3)
pygame.draw.circle(surface_dessin, couleur3, (60,150), 40)

# Transfert de la surface de dessin dans la surface de la fenêtre
surface_fenetre.blit(surface_dessin,(10,10))
surface_fenetre.blit(surface_dessin,(210,50))

# Actualisation de l'affichage de la fenêtre
pygame.display.flip()

pygame.time.wait(3000)
pygame.display.quit()