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 + 4keys[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.
Défi
FacileDéplace la lune avec les touches fléchées :
- Dans la partie modification, lis les touches avec
keys = pygame.key.get_pressed(). - Lorsque la touche gauche est maintenue, soustrais 4 à
moon_x. - 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
1Votre première fenêtre
Votre premier programmeAfficher un messageLes couleurs en nombresDessiner la Lune3Si et touches
Passer de l’autre côté du bordLes touches déplacent la luneElif et ElseEt, ouVrai ou fauxEntraînez-vous par vous-même : Playground Pygame