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.
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.
Afficher un carré d’or à l’écran à une positions fixe ou aléatoire.
✔ Créer une fenêtre PyGame
✔ Afficher un personnage (même en rectangle)
✔ Utiliser des coordonnées (x, y)
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))
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.
pygame.Rect dès le départ : c’est pratique pour afficher ET détecter les collisions.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()
Dans les prochains articles, tu apprendras à :
colliderect)