Tu vas créer un jeu Zelda interactif !
3. ÉTAPE 2 : Créer un personnage qui se déplace
Objectif
L'élève crée un carré bleu (le héros) qui se déplace avec les flèches du clavier.
Question motivante
"Maintenant qu'on a une fenêtre, où place-t-on le personnage ? Comment le fait-on bouger ?"
Concepts clés à maîtriser
-
Rectangle Pygame :
pygame.Rect(x, y, largeur, hauteur) -
Position (x, y) : coordonnées du joueur
-
Détecter les touches clavier :
pygame.key.get_pressed() -
Les touches directionnelles :
pygame.K_UP,pygame.K_DOWN,pygame.K_LEFT,pygame.K_RIGHT -
Mettre à jour la position :
player.x += 5(déplacement) -
Afficher un rectangle :
pygame.draw.rect(screen, color, rect)
import pygame
import sys
pygame.init()
WIDTH, HEIGHT = 1200, 800
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Zelda avec Python")
BLACK, BLUE = (0, 0, 0), (0, 0, 255)
# ===== PARAMÈTRES DU JOUEUR =====
player_x = 600
player_y = 400
player_width = 40
player_height = 40
player_speed = [COMPLETE] # À quelle vitesse se déplace le joueur ?
running = True
while running:
for event in pygame.event.get():
[COMPLETE] # Vérifier si on ferme
# ===== CAPTURER LES TOUCHES =====
keys = [COMPLETE] # Récupérer l'état des touches
if keys[pygame.K_UP]:
[COMPLETE] # Déplacer le joueur vers le haut
if [COMPLETE]: # Vérifier si DOWN est pressé
player_y += player_speed
if keys[pygame.K_LEFT]:
player_x -= player_speed
if [COMPLETE]: # Ajouter le déplacement à droite
# ===== AFFICHAGE =====
screen.fill(BLACK)
[COMPLETE] # Dessiner le rectangle bleu du joueur
pygame.display.update()
pygame.quit()
sys.exit()
À toi de jouer
-
Change la couleur du joueur en rouge ou vert
-
Augmente ou diminue la vitesse de déplacement
-
Fais apparaître le joueur à une position différente (coin haut-gauche)
-
Défi + : Empêche le joueur de sortir de l'écran (bonus : bordures invisibles)
Erreurs courantes
| Erreur | Solution |
|---|---|
| Le joueur ne bouge pas | Vérifier que keys[pygame.K_UP] est bien complet |
| Le joueur sort de l'écran | Ajouter des conditions pour limiter x et y |
| Le joueur bouge trop vite/lentement | Ajuster player_speed |
Progression observable
✓ Fenêtre noire ✓ Carré bleu au centre ✓ Carré bouge avec les flèches ✓ Le joueur peut se déplacer partout à l'écran
Lien pédagogique
Ce système de déplacement sera réutilisé pour les ENNEMIS à l'Étape 3.