Un joystick (ou joypad, manette) peut être utilisé dans un jeu PyGame pour déplacer un personnage. Ce périphérique est souvent composé de sticks analogiques et de boutons. PyGame permet d'accéder à ces éléments via son module joystick.
Avant de lire les mouvements du joystick, il faut l’activer dans PyGame :
pygame.init()
pygame.joystick.init()
# Activer le premier joystick détecté
joystick = pygame.joystick.Joystick(0)
joystick.init()
⚠️ Ton joystick doit être branché avant de lancer le programme.
La majorité des joysticks ont deux axes analogiques (gauche/droite et haut/bas). On peut lire ces axes avec :
x_axis = joystick.get_axis(0) # Axe horizontal
y_axis = joystick.get_axis(1) # Axe vertical
Chaque axe renvoie une valeur entre -1.0 (à gauche ou en haut) et 1.0 (à droite ou en bas). Le centre correspond à 0.0.
Voici comment déplacer un joueur avec un joystick, en tenant compte d’une vitesse :
vitesse = 5
player_x += x_axis * vitesse
player_y += y_axis * vitesse
Le personnage se déplace plus ou moins vite selon l’inclinaison du stick. Cela donne un mouvement fluide et progressif.
import pygame
pygame.init()
pygame.joystick.init()
joystick = pygame.joystick.Joystick(0)
joystick.init()
screen = pygame.display.set_mode((800, 600))
player = pygame.image.load("joueur.png")
x, y = 400, 300
vitesse = 5
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
x_axis = joystick.get_axis(0)
y_axis = joystick.get_axis(1)
x += x_axis * vitesse
y += y_axis * vitesse
screen.fill((0, 0, 0))
screen.blit(player, (x, y))
pygame.display.flip()
clock.tick(60)
pygame.quit()
if abs(x_axis) < 0.1:
x_axis = 0
pygame.joystick.get_count() si tu veux gérer plusieurs manettes.Avec cette base, tu peux facilement ajouter un support joystick dans ton jeu PyGame et permettre aux joueurs de se déplacer autrement qu’au clavier.