Menu
CoddyTech

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 + 4

keys[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.

challenge icon

Desafio

Fácil

Mova a lua com as teclas de seta:

  1. Na parte de alteração, leia as teclas com keys = pygame.key.get_pressed().
  2. Enquanto a tecla Left estiver pressionada, subtraia 4 de moon_x.
  3. 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