Tu vas créer un jeu Zelda interactif !
11. ÉTAPE 10 : Portage sur Console (Recalbox)
Objectif
L'élève apprend à rendre son jeu compatible avec un matériel spécifique (le Raspberry Pi) et à remplacer les entrées clavier par celles d'une manette.
Question motivante
"Votre jeu est super sur PC, mais comment le transformer en une véritable 'ROM' jouable sur une télévision avec une manette de Super Nintendo ?"
Concepts clés à maîtriser
Le module
Joystick: Détecter et lire les axes/boutons d'une manette.Le mode
FULLSCREEN: Utiliser tout l'affichage de la télévision.La gestion de la sortie : Pouvoir quitter le jeu sans clavier (indispensable sur console).
1. Préparation du matériel (Avant la boucle)
On initialise la manette et on force le plein écran pour l'immersion.
# ===== CONFIGURATION CONSOLE =====
pygame.joystick.init()
joysticks = [pygame.joystick.Joystick(i) for i in range(pygame.joystick.get_count())]
# Passage en plein écran (0,0 s'adapte automatiquement à la TV)
screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
WIDTH, HEIGHT = screen.get_size()
2. Mouvement à la manette (Dans la boucle)
On remplace (ou on ajoute) la lecture des axes de la manette.
# Lecture de la manette si elle est branchée
for joy in joysticks:
# Axe 0 = Horizontal, Axe 1 = Vertical
# On multiplie par la vitesse du joueur
player['x'] += joy.get_axis(0) * player['speed']
player['y'] += joy.get_axis(1) * player['speed']
# SÉCURITÉ : Quitter le jeu avec le bouton "START" (souvent le bouton 7)
if joy.get_button(7):
running = False
3. Actions (Tirer / Attaquer)
On utilise l'événement JOYBUTTONDOWN pour déclencher les actions.
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Si on appuie sur un bouton de la manette
if event.type == pygame.JOYBUTTONDOWN:
if event.button == 0: # Bouton 'A' sur SNES
# Appeler ici le code d'attaque ou de tir
print("Action manette détectée !")
Le Défi "Arcade" :
"Faites en sorte que si on appuie sur 'SELECT' (bouton 6) et 'START' (bouton 7) en même temps, le jeu se ferme. C'est le raccourci standard sur Recalbox !"