Les objets de type Surface : Principe générale

Les objets de type Surface correspondent à un ensemble rectangulaire de pixels sauvegardé en mémoire.

Créer un objet de type Surface

Création manuelle

import pygame
taille = (50, 30)
surface1 = pygame.Surface(taille)

Création à partir d'un texte

Voir le paragraphe dédié.

Création à partir d'un fichier image

Voir le paragraphe dédié.

Remplir une surface avec une couleur

Les surfaces disposent d'une méthode fill(couleur) qui permet de les remplir d'une couleur passée en paramètre.

Remplissage la totalité de la surface

Exemple :

import pygame
pygame.init()

couleur_fond = (0, 255, 0)

surface_v = pygame.Surface((50,50))
# remplissage de la totalité de la surface surface_v
surface_v.fill(couleur_fond)

surface_fenetre = pygame.display.set_mode((300, 100))
pygame.display.set_caption("Surface verte")

surface_fenetre.blit(surface_v,(20,20))

pygame.display.flip()

pygame.time.wait(2000)
pygame.display.quit()
Fentre pygame avec une surface verte ajoutée

Remplissage seulement une zone rectangulaire de la surface

Exemple :

import pygame
pygame.init()

couleur1 = (50, 50, 50)
couleur2 = (255, 255, 255)

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

# remplissage de la totalité de la surface liée à la fenêtre
surface_fenetre.fill(couleur1)
# remplissage de la moitié droite de la surface liée à la fenêtre
surface_fenetre.fill(couleur2, (150,0,150,100))
pygame.display.flip()

pygame.time.wait(2000)
pygame.display.quit()
Fentre pygame avec une surface verte ajoutée

Copier un objet de type Surface dans un autre objet de type Surface

Une surface peut être copiée sur une autre surface à un emplacement choisi à l'aide de la méthode blit().

import pygame
surface_destination.blit(surface_a_copier, rect_destination)

Le paramètre rect_destination peut être de type Rect ou simplement un tuple représentant les coordonnées du point en haut à gauche.

Récupérer les dimensions d'une surface

Il est possible de récupérer les dimensions d'un objet de type Surface.

Méthode
Description
surface1.get_width() -> int
surface1.get_height() -> int
surface1.get_size() -> tuple