Menu
CoddyTech

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 = False

Una 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_on

La sección 2 explica los eventos en detalle. Por ahora: event.type indica qué ocurrió y event.key, qué tecla.

challenge icon

Desafío

Intermedio

Haz que la barra espaciadora encienda y apague la lámpara:

  1. En la parte de configuración, establece lamp_on = False.
  2. En el bucle de eventos, cuando llegue un evento KEYDOWN para K_SPACE, establece lamp_on = not lamp_on.
  3. Dibuja la luz en (320, 290), con un radio de 30: (255, 220, 100) cuando lamp_on sea 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()
quiz iconPonte a prueba

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