• Jogos
  • 02. Criando uma janela

Criando uma janela

Loop do jogo

O loop do jogo ocorre nas linhas 12 a 26.

game = True

# ===== Loop principal =====
while game:
    # ----- Trata eventos
    for event in pygame.event.get():
        # ----- Verifica consequências
        if event.type == pygame.QUIT:
            game = False

    # ----- Gera saídas
    window.fill((255, 255, 255))  # Preenche com a cor branca

    # ----- Atualiza estado do jogo
    pygame.display.update()  # Mostra o novo frame para o jogador

Note que boa parte desse código já está contido nas funções recebe_eventos e desenha. Falta só chamá-las em loop enquanto o jogo não for fechado. Uma versão refatorada do código acima seria:

game = True

# ===== Loop principal =====
while game:
    # ----- Trata eventos
    game = recebe_eventos()

    # ----- Gera saídas
    desenha(window)

Exercício 1

Implemente a função game_loop. Ela recebe um argumento window (que é a janela devolvida pela função inicializa) e deverá chamar as funções recebe_eventos e desenha alternadamente em loop. Ela deve retornar quando recebe_eventos retornar False.

Sua função deverá passar nos testes

  • test_4_game_loop_chama_funcoes_criadas
  • test_4_game_loop_roda_4_vezes_antes_de_sair
  • test_4_game_loop_sai_na_primeira_vez
  • test_4_game_loop_sai_na_segunda_vez

Estamos prontos para juntar tudo isso e ver nosso jogo rodando!