• Jogos
  • 02. Criando uma janela

Criando uma janela

Tratamento de eventos

Vamos agora para nossa função de tratamento de eventos. As linhas que fazem este trabalho no arquivo jogo_v0.py são explicadas abaixo.

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

Novamente, vamos praticar a consulta de documentações.

Exercício 1

Abra a documentação da função pygame.event.get(). Escreva abaixo, em uma frase, o que essa função faz.

Resposta

Devolve uma lista com todos os eventos (cliques/movimentos de mouse, teclas apertadas, botões da janela apertados, etc.) que ocorreram desde a última vez que essa função foi chamada. O for percorre cada um desses eventos, aplicando as consequências necessárias a cada caso.

Todo evento tem um atributo type1 (acessado como evento.type). Se esse valor for igual a pygame.QUIT, significa que o usuário clicou no botão de fechar a janela (normalmente no canto superior direito ou esquerdo da janela).

Quando o evento do tipo pygame.QUIT é recebido, o jogo não fecha automaticamente. O pygame apenas nos indica que essa é a intenção do usuário. Por isso temos a linha game = False (linha 20), que muda o valor para False para que a próxima iteração do loop principal não seja mais executada.

Exercício 2

Vamos agora converter essas linhas para uma função recebe_eventos que devolve um bool que indica se o jogo deverá continuar ou não. Ou seja, esta função devolve o valor da variável game no código jogo_v0.py.

Coloque sua função no arquivo funcoes.py do exercício desta seção.

Seu código deverá passar nos testes

  • test_2_recebe_eventos_QUIT
  • test_2_recebe_eventos_sem_eventos

Agora que já criamos a janela e tratamos os eventos, vamos trabalhar no conteúdo da janela, ou seja, vamos desenhar!


  1. A documentação do pygame não possui uma lista de todos os tipos de evento possíveis em um único lugar, então não deixamos este ponto como exercício.