Afficher une couleur en fond d'écran en PyGame

Un fond d'écran va rendre ton jeu plus joli. Utiliser une couleur comme fond d'écran est une méthode simple et efficace.

    3ttr
  • Découverte
  1. Définir une couleur de fond :
background_color = (50, 50, 50)  # Gris foncé
  1. Remplir l'écran :
screen.fill(background_color)

Exemple complet

import pygame
pygame.init()

# Initialisation de la fenêtre
largeur_ecran, hauteur_ecran = 800, 600
screen = pygame.display.set_mode((largeur_ecran, hauteur_ecran))
background_tile = pygame.image.load('background_tile.png')
background_color = (50, 50, 50)

# Boucle de jeu
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    
    screen.fill(background_color)  # Étape 1 : fond uni

    pygame.display.flip()  # Rafraîchir l'écran

pygame.quit()

Théorie des couleurs en informatique (RGB)

En informatique, la couleur est définie par le modèle RGB (Red, Green, Blue). Chaque couleur est une combinaison de trois valeurs :

  • Rouge (R)
  • Vert (G)
  • Bleu (B)

Chaque composante peut varier de 0 à 255, où 0 signifie absence de couleur et 255 représente l'intensité maximale.

Exemples de couleurs

  • Couleurs primaires

    • Rouge : (255, 0, 0)
    • Vert : (0, 255, 0)
    • Bleu : (0, 0, 255)
  • Couleurs secondaires (mélange de deux primaires)

    • Magenta (Rouge + Bleu) : (255, 0, 255)
    • Jaune (Rouge + Vert) : (255, 255, 0)
    • Cyan (Vert + Bleu) : (0, 255, 255)
  • Autres couleurs

    • Blanc (toutes les couleurs à 255) : (255, 255, 255)
    • Noir (absence de couleur) : (0, 0, 0)
    • Gris (valeurs égales) : (128, 128, 128)

Méthode 2 : Utiliser un motif répétitif

Dans un jeu vidéo, il est parfois utile d'utiliser une image en motif (pattern) qui se répète pour couvrir tout l'écran. Voici comment procéder en PyGame.

Tu peux télécharger des images de fond dans la section téléchargement. Dans les exemples suivants, remplace le nom de fichier par celui dont tu as besoin.

  1. Charger l'image du motif :
background_tile = pygame.image.load('background.png')
  1. Dessiner l'image en répétition :
for x in range(0, largeur_ecran, background_tile.get_width()):
    for y in range(0, hauteur_ecran, background_tile.get_height()):
        screen.blit(background_tile, (x, y))

Charger et répéter une image en fond

  1. Charger l'image du motif :
background_tile = pygame.image.load('background.png')
  1. Dessiner l'image en répétition :
for x in range(0, largeur_ecran, background_tile.get_width()):
    for y in range(0, hauteur_ecran, background_tile.get_height()):
        screen.blit(background_tile, (x, y))

Exemple complet

import pygame
pygame.init()

# Initialisation de la fenêtre
largeur_ecran, hauteur_ecran = 800, 600
screen = pygame.display.set_mode((largeur_ecran, hauteur_ecran))
background_tile = pygame.image.load('background.png')

# Boucle de jeu
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    
    # Remplir l'écran avec le motif répété
    for x in range(0, largeur_ecran, background_tile.get_width()):
        for y in range(0, hauteur_ecran, background_tile.get_height()):
            screen.blit(background_tile, (x, y))
    
    pygame.display.flip()  # Rafraîchir l'écran

pygame.quit()

Astuces

  • Choisis une image qui s'assemble bien pour éviter les coupures visibles.
  • Assure-toi que la taille du motif est optimisée pour éviter des répétitions trop évidentes.
  • Pour un effet plus dynamique, ajoute un léger déplacement du motif à chaque frame pour simuler un défilement.

Avec cette technique, tu peux créer facilement des arrière-plans immersifs et fluides !

Bonus

Pour les plus courageux: essaye d'afficher un mur autours de la fenêtre.

Cela peut se faire avce 3 boucles:

  1. Une pour le mur du haut
  2. Une pour les murs verticaux
  3. Une pour le mur du bas

Pour aller plus loin