Les objets de type Surface : Créer une surface à partir d'un texte

Généralités

L'écriture de texte se fait en deux étapes :

La surface peut ensuite être placée (avec la méthode blit()) dans n'importe quelle autre surface y compris la fenêtre principale.

Création de l'objet de type font

Méthode
Description
pygame.font.SysFont(name, size, bold=False, italic=False) -> Font
Créer un objet de type Font à partir d'un nom de police
pygame.font.Font(file, size) -> Font
Créer un objet de type Font à partir d'un fichier de police

Création de la surface

Méthode
Description
ma_font.render(text, antialias, color, background=None) -> Surface
Pour créer une surface à partir d'un objet de type Font

Exemples

Affichage d'un texte dans deux polices différentes

L'exemple suivant nécessite que le fichier de police de caractère 'deadly finisher.ttf' soit présent dans le même dossier que le fichier du programme.

import pygame
pygame.init()
BLANC = (255, 255, 255)
fen = pygame.display.set_mode((800, 600))
continuer = True
while continuer :
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            continuer = False
    # Création des objets de type Font
    police1 = pygame.font.SysFont('Arial', 70, False, True)
    police2 = pygame.font.Font('deadly finisher.ttf', 70)
    # Création des surfaces
    surface_text1 = police1.render("Bonjour !", 1, BLANC)
    surface_text2 = police2.render("Bonjour !", 1, BLANC)
    #  Transfert des surfaces dans la fenêtre principale
    fen.blit(surface_text1, (50,100))
    fen.blit(surface_text2, (50,200))
    pygame.display.flip()
pygame.quit()

Affichage d'un texte centré dans un disque

import pygame
pygame.init()
couleur_fond = (0, 0, 0)
couleur_texte = (255, 255, 255)
couleur_disque = (200, 0, 0)
fen = pygame.display.set_mode((800, 600))
continuer = True
while continuer :
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            continuer = False
    # Coloration du fond de la fenêtre
    fen.fill(couleur_fond)
    # Affichage du disque et récupération du rectangle (type Rect) correspondant
    rect_disque = pygame.draw.circle(fen, couleur_disque, (200,150), 50)
    # Création de l'objet de type Font
    police = pygame.font.SysFont('Arial', 70, False, False)
    # Création de la surface contenant le texte
    surface_texte = police.render("A", 1, couleur_texte)
    # Récupération du rectangle (type Rect) correspondant à la surface du texte
    rect_texte = surface_texte.get_rect()
    # Affectation des coordonnées  du centre du rectangle du disque aux coordonnées du centre du rectangle du texte
    rect_texte.center = rect_disque.center
    # Affichage de la surface du texte dans la fenêtre
    fen.blit(surface_texte, rect_texte)
    # Actualisation de l'affichage de la fenêtre
    pygame.display.flip()
pygame.quit()