Verdadero o falso
Parte de la sección Python en una ventana de juego del Journey de Pygame de Coddy. Lección 14 de 32.
True y False son valores propios, llamados booleanos. Una variable puede contener uno de ellos, como un interruptor:
lamp_on = FalseUna instrucción if puede comprobarlo directamente: if lamp_on: se ejecuta cuando contiene True. not lo invierte, así que lamp_on = not lamp_on cambia el estado de la lámpara.
Un interruptor necesita una pulsación de tecla, no una tecla mantenida. get_pressed() devuelve True en cada fotograma en que la tecla está pulsada, así que cambiaría el estado de la lámpara 60 veces por segundo. Una pulsación llega una sola vez, como un evento KEYDOWN, en el bucle de eventos situado al inicio del bucle del juego:
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_onLa sección 2 explica los eventos en detalle. Por ahora: event.type indica qué ocurrió y event.key, qué tecla.
Desafío
IntermedioHaz que la barra espaciadora encienda y apague la lámpara:
- En la parte de configuración, establece
lamp_on = False. - En el bucle de eventos, cuando llegue un evento
KEYDOWNparaK_SPACE, establecelamp_on = not lamp_on. - Dibuja la luz en
(320, 290), con un radio de 30:(255, 220, 100)cuandolamp_onsea True; de lo contrario,(70, 70, 90).
Pruébalo tú mismo
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Configura todo aquí, antes del bucle del juego.
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Cambia lo necesario aquí, una vez por fotograma.
screen.fill((20, 24, 48))
# Dibuja aquí, después de rellenar la pantalla.
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()
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Python en una ventana de juego
Practica por tu cuenta: Playground de Pygame