Teclas de flecha
Parte de la sección El bucle del juego del Journey de Pygame de Coddy. Lección 5 de 32.
Para mover el cuadrado, guarda su posición en variables y dibújalo allí en cada fotograma. Cambia las variables y el siguiente fotograma mostrará el cuadrado en otro lugar.
pygame.key.get_pressed() te indica qué teclas están pulsadas en este momento. Indéxalo con una constante de tecla como pygame.K_RIGHT: el resultado es True mientras esa tecla esté pulsada.
x = 100
while running:
# eventos
keys = pygame.key.get_pressed()
if keys[pygame.K_RIGHT]:
x += 4
# rellena, luego dibuja en xMantén pulsada la tecla de flecha derecha y el cuadrado se moverá 4 píxeles en cada fotograma, 240 píxeles por segundo a 60 fotogramas por segundo. Las teclas de flecha son K_LEFT, K_RIGHT, K_UP y K_DOWN. Arriba significa un valor de y menor.
Define las variables antes del bucle. Una variable definida dentro del bucle vuelve a empezar en cada fotograma.
Desafío
FácilMueve el cuadrado con las teclas de flecha:
- Antes del bucle, define
x, y = 220, 160yspeed = 4. - En el bucle, después de los eventos, lee las teclas con
pygame.key.get_pressed(). Cada tecla de flecha que mantengas presionada cambiaxoyenspeed. - Dibuja el cuadrado en
(x, y, 40, 40).
Pruébalo tú mismo
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 196, 0), (220, 160, 40, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Todas las lecciones de El bucle del juego
1Mueve un cuadrado
Abre una ventanaRellena el fondo4Movimiento basado en el tiempo
Tiempo deltaPíxeles por segundoVector2Aceleración y fricciónReaparecer al otro lado de la pantallaPractica por tu cuenta: Playground de Pygame