Menu
CoddyTech

I tasti muovono la luna

Fa parte della sezione Python in una finestra di gioco del percorso Pygame di Coddy. Lezione 11 di 32.

pygame.key.get_pressed() ti dice quali tasti sono tenuti premuti in questo frame. Memorizza il risultato una volta per frame, poi controlla un tasto:

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 mentre il tasto Left è tenuto premuto e False altrimenti, quindi l’if sottostante viene eseguito a ogni frame in cui il tasto è premuto. Tieni premuto Right per un secondo e la luna si sposta di 240 pixel.

Ogni tasto ha un nome: K_UP, K_DOWN, K_SPACE, K_a per A, K_d per D.

Usa due if separati, uno per ogni tasto, così ciascun tasto viene verificato indipendentemente. Gli if vanno nella parte dedicata alle modifiche, dopo il ciclo degli eventi.

challenge icon

Sfida

Facile

Sposta la luna con i tasti freccia:

  1. Nella parte dedicata alle modifiche, leggi i tasti con keys = pygame.key.get_pressed().
  2. Mentre tieni premuto il tasto freccia sinistra, sottrai 4 da moon_x.
  3. Mentre tieni premuto il tasto freccia destra, aggiungi 4 a moon_x.

Provalo tu

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Prepara tutto qui, prima del ciclo di gioco.
moon_x = 320
moon_y = 240

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Modifica le cose qui, una volta per fotogramma.

    screen.fill((20, 24, 48))
    # Disegna qui, dopo aver riempito lo schermo.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Tutte le lezioni di Python in una finestra di gioco

Esercitati da solo: Playground Pygame