Menu
CoddyTech

Les touches déplacent la lune

Fait partie de la section Python dans une fenêtre de jeu du Journey Pygame de Coddy. Leçon 11 sur 32.

pygame.key.get_pressed() vous indique quelles touches sont maintenues enfoncées pendant cette frame. Enregistrez son résultat une fois par frame, puis interrogez-le sur une touche :

keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
    moon_x = moon_x - 4
if keys[pygame.K_RIGHT]:
    moon_x = moon_x + 4

keys[pygame.K_LEFT] vaut True tant que la touche Gauche est maintenue enfoncée et False sinon. Le if qui la suit s’exécute donc à chaque frame où la touche est enfoncée. Maintenez la touche Droite enfoncée pendant une seconde et la lune se déplace de 240 pixels.

Chaque touche a un nom : K_UP, K_DOWN, K_SPACE, K_a pour A, K_d pour D.

Utilisez deux if distincts, un par touche, afin que chaque touche soit testée séparément. Les if vont dans la partie qui modifie la position, après la boucle d’événements.

challenge icon

Défi

Facile

Déplace la lune avec les touches fléchées :

  1. Dans la partie modification, lis les touches avec keys = pygame.key.get_pressed().
  2. Lorsque la touche gauche est maintenue, soustrais 4 à moon_x.
  3. Lorsque la touche droite est maintenue, ajoute 4 à moon_x.

Essayez vous-même

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Préparez les éléments ici, avant la boucle du jeu.
moon_x = 320
moon_y = 240

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Modifiez les éléments ici, une fois par image.

    screen.fill((20, 24, 48))
    # Dessinez ici, après le remplissage.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Toutes les leçons de Python dans une fenêtre de jeu

Entraînez-vous par vous-même : Playground Pygame