Générer un carré d’or sur l’écran

Voici un article sur la génération d'un carré d’or à l’écran, première étape avant la détection de collisions. L’objectif est de te préparer à gérer des interactions simples entre objets dans PyGame.

    3ttr
  • Découverte

Avant d’apprendre à détecter les collisions, il faut d’abord afficher des objets avec lesquels le joueur pourra interagir. Ici, on va afficher un carré d’or sous forme de rectangle jaune. Cela permet de se concentrer sur la logique sans devoir gérer des images.


🎯 Objectif

Afficher un carré d’or à l’écran à une positions fixe ou aléatoire.


🧠 Ce que tu dois déjà savoir faire

✔ Créer une fenêtre PyGame
✔ Afficher un personnage (même en rectangle)
✔ Utiliser des coordonnées (x, y)


✅ Étape 1 : Un seul carré

On commence avec un carré de 20x20 pixels, couleur dorée (255, 215, 0) :

taille_carre = 20
carre_x = 300
carre_y = 200
couleur_carre = (255, 215, 0)

Dans la boucle de jeu, on dessine le carré :

pygame.draw.rect(screen, couleur_carre, (carre_x, carre_y, taille_carre, taille_carre))

🎲 Étape 3 : Génération aléatoire

On peut aussi générer le carré à une position aléatoire :

import random

carre_x = random.randint(0, largeur_ecran - taille_carre)  # largeur_ecran - largeur du carré pour ne pas déborder
carre_y = random.randint(0, hauteur_ecran - taille_carre)  # hauteur_ecran - hauteur du carré pour ne pas déborder

On laisse une marge pour que la carré ne sorte pas de l’écran.


🧠 Bonnes pratiques

  • Utilise des pygame.Rect dès le départ : c’est pratique pour afficher ET détecter les collisions.
  • Garde la même taille pour toutes les carrés pour simplifier les calculs.

Exemple complet

Voici le code complet qui te permet de générer un carré au hasard en reprenant le code utilisé dans les exemples précédents.

import pygame
import random
import sys

# Initialisation de PyGame
pygame.init()

# Définir la taille de la fenêtre
largeur_ecran = 800
hauteur_ecran = 600
screen = pygame.display.set_mode((largeur_ecran, hauteur_ecran))
pygame.display.set_caption("Pièces d'or")

# Définir la couleur et la taille des carrés (pièces)
couleur_carre = (255, 215, 0)  # Doré
taille_carre = 20

# Génération du carré
carre_x = random.randint(0, largeur_ecran - taille_carre)  # largeur_ecran - largeur du carré pour ne pas déborder
carre_y = random.randint(0, hauteur_ecran - taille_carre)  # hauteur_ecran - hauteur du carré pour ne pas déborder

# Boucle de jeu
clock = pygame.time.Clock()
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Effacer l'écran
    screen.fill((0, 0, 0))

    # Dessiner le carré
    pygame.draw.rect(screen, couleur_carre, (carre_x, carre_y, taille_carre, taille_carre))

    # Mettre à jour l'affichage
    pygame.display.flip()
    clock.tick(60)

# Quitter proprement
pygame.quit()
sys.exit()

🔜 La suite

Dans les prochains articles, tu apprendras à :

  • vérifier si le joueur touche le carré (colliderect)
  • faire disparaître le carré touché
  • augmenter un score

Pour aller plus loin