As teclas movem a lua
Parte da seção Python em uma janela de jogo do Journey de Pygame da Coddy. Lição 11 de 32.
pygame.key.get_pressed() informa quais teclas estão pressionadas neste quadro. Armazene a resposta uma vez por quadro e, em seguida, verifique uma 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] é True enquanto a tecla Esquerda estiver pressionada e False caso contrário, então o if abaixo dela é executado em cada quadro em que a tecla está pressionada. Mantenha a tecla Direita pressionada por um segundo e a lua se moverá 240 pixels.
Cada tecla tem um nome: K_UP, K_DOWN, K_SPACE, K_a para A, K_d para D.
Use dois ifs separados, um para cada tecla, para que cada tecla seja testada individualmente. Os ifs ficam na parte de alteração, depois do loop de eventos.
Desafio
FácilMova a lua com as teclas de seta:
- Na parte de alteração, leia as teclas com
keys = pygame.key.get_pressed(). - Enquanto a tecla Left estiver pressionada, subtraia 4 de
moon_x. - Enquanto a tecla Right estiver pressionada, some 4 a
moon_x.
Experimente você mesmo
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Configure as coisas aqui, antes do loop do jogo.
moon_x = 320
moon_y = 240
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Altere as coisas aqui, uma vez por quadro.
screen.fill((20, 24, 48))
# Desenhe aqui, depois de preencher a tela.
pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Todas as lições de Python em uma janela de jogo
Pratique por conta própria: Playground de Pygame