Las teclas mueven la Luna
Parte de la sección Python en una ventana de juego del Journey de Pygame de Coddy. Lección 11 de 32.
pygame.key.get_pressed() te indica qué teclas están presionadas durante este fotograma. Guarda su respuesta una vez por fotograma y luego consulta una tecla:
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] es True mientras se mantenga presionada la tecla de flecha izquierda y False en caso contrario, así que el if que aparece debajo se ejecuta en cada fotograma en que la tecla está presionada. Mantén presionada la tecla de flecha derecha durante un segundo y la luna se moverá 240 píxeles.
Cada tecla tiene un nombre: K_UP, K_DOWN, K_SPACE, K_a para A, K_d para D.
Usa dos if separados, uno por tecla, para que cada tecla se compruebe por separado. Los if van en la parte de cambios, después del bucle de eventos.
Desafío
FácilMueve la luna con las teclas de dirección:
- En la sección de cambios, lee las teclas con
keys = pygame.key.get_pressed(). - Mientras mantienes pulsada la tecla de dirección izquierda, resta 4 a
moon_x. - Mientras mantienes pulsada la tecla de dirección derecha, suma 4 a
moon_x.
Pruébalo tú mismo
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Prepara todo aquí, antes del bucle del juego.
moon_x = 320
moon_y = 240
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Haz los cambios aquí, una vez por fotograma.
screen.fill((20, 24, 48))
# Dibuja aquí, después de rellenar la pantalla.
pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Todas las lecciones de Python en una ventana de juego
Practica por tu cuenta: Playground de Pygame