Menu
CoddyTech

Vero o falso

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

True e False sono valori a sé, chiamati booleani. Una variabile può contenerne uno, come un interruttore:

lamp_on = False

Un if può verificarlo direttamente: if lamp_on: viene eseguito quando il suo valore è True. not lo inverte, quindi lamp_on = not lamp_on accende o spegne la lampada.

Un interruttore ha bisogno della pressione di un tasto, non che il tasto resti premuto. get_pressed() restituisce True a ogni fotogramma in cui il tasto è premuto, quindi invertirebbe lo stato della lampada 60 volte al secondo. Una pressione viene rilevata una sola volta, come evento KEYDOWN, nel ciclo degli eventi all'inizio del ciclo di gioco:

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False
    if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
        lamp_on = not lamp_on

La sezione 2 spiega gli eventi nel dettaglio. Per ora: event.type indica che cosa è successo e event.key quale tasto.

challenge icon

Sfida

Medio

Fai in modo che la barra spaziatrice accenda e spenga la lampada:

  1. Nella parte di configurazione, imposta lamp_on = False.
  2. Nel ciclo degli eventi, quando arriva un evento KEYDOWN per K_SPACE, imposta lamp_on = not lamp_on.
  3. Disegna la luce in (320, 290), con raggio 30: (255, 220, 100) quando lamp_on è True, altrimenti (70, 70, 90).

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.

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.rect(screen, (90, 90, 110), (310, 300, 20, 180))
    pygame.draw.circle(screen, (70, 70, 90), (320, 290), 30)

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

pygame.quit()
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Python in una finestra di gioco

Esercitati da solo: Playground Pygame