• Jogos
  • 02. Criando uma janela

Introdução

Criando uma janela

Para criar uma janela com Pygame precisamos implementar todas as etapas da organização básica do jogo que vimos anteriormente. Ou seja, será necessário utilizarmos muitos comandos para fazer coisas aparentemente simples, como mostrar uma janela em branco. Não se assuste. Essa estrutura básica se repete de maneira muito semelhante1 em qualquer jogo que você for desenvolver. Vamos começar então com o exemplo que acabamos de comentar: como mostrar uma janela do pygame.

O arquivo jogo_v0.py contém inicialmente o código abaixo. Ao longo deste handout, vamos trabalhar no arquivo jogo.py, mas fornecemos o jogo_v0.py como uma referência inicial:

# ===== Inicialização =====
# ----- Importa e inicia pacotes
import pygame

pygame.init()

# ----- Gera tela principal
window = pygame.display.set_mode((500, 400))
pygame.display.set_caption('Hello World!')

# ----- Inicia estruturas de dados
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

Exercício 1

Comece rodando o jogo_v0.py para visualizar o resultado final.

Pois é, não é muito emocionante, mas precisamos começar de algum lugar. Entenda este primeiro programa como nosso "hello world" do pygame.

Para entender melhor este código extenso vamos separá-lo nas partes da estrutura básica que mostramos no início. Ou seja, nos próximos exercícios criaremos as seguintes funções:

  • inicializa: inicializa pygame e recursos necessários para o jogo
  • desenha: atualiza a tela, desenhando figuras e escrevendo texto na tela
  • recebe_eventos: recebe interação do usuário

Dica 1

A pygame possui um grande número de funcionalidades. Consulte a documentação se não entender algum dos comandos.

Nossas próximas atividades de pygame estarão organizadas usando estas funções.

Vamos começar pela inicialização.


  1. Para cada tipo de aplicação é comum encontrarmos trechos de código que se repetem com nenhuma ou pouca modificação. No nosso caso, por exemplo, veremos que a estrutura do jogo como um todo é muito similar, independente do jogo implementado. Chamamos esse tipo de código de boilerplate