Corre a toda velocidad
Parte de la sección El bucle del juego del Journey de Pygame de Coddy. Lección 6 de 32.
Una variable puede cambiar en cada fotograma, según lo que haga el jugador. Aquí, la velocidad depende de si se mantiene pulsada la barra espaciadora.
keys = pygame.key.get_pressed()
speed = 4
if keys[pygame.K_SPACE]:
speed = 8Cada fotograma empieza con la velocidad normal, 4. Solo un fotograma en el que se mantenga pulsada la barra espaciadora la aumenta a 8. Suelta la barra espaciadora y el siguiente fotograma vuelve a 4.
Establece primero el valor normal y después el especial. En el otro orden, la segunda línea siempre prevalece y la barra espaciadora no hace nada.
Desafío
FácilHaz que el jugador corra:
- Elimina
speed = 4de encima del bucle. - En el bucle, justo después de
keys = pygame.key.get_pressed(), establecespeed = 4y luego establécelo en8si se mantiene presionada la barra espaciadora.
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()
x, y = 220, 160
speed = 4
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
x -= speed
if keys[pygame.K_RIGHT]:
x += speed
if keys[pygame.K_UP]:
y -= speed
if keys[pygame.K_DOWN]:
y += speed
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 196, 0), (x, y, 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