Menu
CoddyTech

Verdadeiro ou falso

Parte da seção Python em uma janela de jogo do Journey de Pygame da Coddy. Lição 14 de 32.

True e False são valores próprios, chamados de booleanos. Uma variável pode armazenar um deles, como um interruptor:

lamp_on = False

Um if pode testá-lo diretamente: if lamp_on: é executado quando o valor é True. not inverte o valor, então lamp_on = not lamp_on alterna o estado da lâmpada.

Um interruptor precisa de um pressionamento de tecla, não de uma tecla mantida pressionada. get_pressed() é True em todos os quadros em que a tecla está pressionada, então alternaria o estado da lâmpada 60 vezes por segundo. Um pressionamento é registrado uma vez, como um evento KEYDOWN, no loop de eventos no início do loop do jogo:

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

A Seção 2 explica os eventos por completo. Por enquanto: event.type indica o que aconteceu e event.key, qual tecla.

challenge icon

Desafio

Médio

Faça com que a barra de espaço alterne a lâmpada:

  1. Na parte de configuração, defina lamp_on = False.
  2. No loop de eventos, quando ocorrer um evento KEYDOWN para K_SPACE, defina lamp_on = not lamp_on.
  3. Desenhe a luz em (320, 290), com raio 30: (255, 220, 100) quando lamp_on for True; caso contrário, (70, 70, 90).

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.

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.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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Python em uma janela de jogo

Pratique por conta própria: Playground de Pygame