• Jogos
  • 01. Introdução

Introdução

Próximos passos

Neste ponto do curso já aprendemos as principais estruturas e comandos do Python: funções, input, print, if, while, for, listas, dicionários, strings. Além disso, já somos capazes de desenvolver algoritmos que resolvem diversos problemas computacionais (ainda tem muito mais pela frente, mas já é um ótimo começo!).

Logo da biblioteca Pygame

Nas próximas semanas vamos partir para um desafio um pouco maior: desenvolver um jogo 2D utilizando a biblioteca1 Pygame, que disponibiliza diversas funções que permitem:

  1. Manipular e desenhar imagens em uma janela;
  2. Interagir com o usuário por meio do teclado, mouse ou outros dispositivos (ex: controles);
  3. Tocar sons.

Objetivos de aprendizagem#

Ao final deste handout, você deverá ser capaz de:

  1. Criar janelas utilizando Pygame;
  2. Desenhar formas geométricas simples usando Pygame.

Estrutura básica de um jogo#

Vamos começar entendendo a estrutura de um jogo qualquer. Note que este conhecimento independe da biblioteca ou linguagem de programação utilizada. Essa estrutura pode ser resumida da seguinte maneira:

Estrutura básica de um jogo

Inicialização#

  • Importa e inicia pacotes: por exemplo, realiza os imports no Python;
  • Inicia estruturas de dados: por exemplo, inicia listas, dicionários, variáveis, etc. com seus valores padrão;
  • Inicia assets: exemplos de assets são imagens, sons, sprites, modelos 3D, etc. que são utilizados pelo jogo;
  • Gera tela principal: criar a janela onde o jogo será apresentado;
  • Dispara loop principal: depois que toda a inicialização está concluída o jogo propriamente dito se inicia.

Loop principal#

O jogo e toda a interação acontece durante esta fase. O loop principal, também chamado de game loop, se repete enquanto o jogo estiver rodando. Em geral, ao final de uma iteração do loop principal será gerado um novo frame para ser apresentado para o usuário.

  • Trata eventos: por exemplo, movimentos/cliques de mouse, input de teclado, timer, clique do usuário no X para fechar a janela, etc.
  • Verifica consequências: verifica se houve colisões, aplica as ações do usuário (por exemplo, muda a direção do personagem se o jogador apertou uma tecla), etc. de acordo com as regras e mecânica do jogo;
  • Atualiza estado do jogo: move os objetos na tela, atualiza os estados dos assets (por exemplo, muda a animação) e as estruturas de dados utilizadas (por exemplo, atualiza a lista de personagens vivos);
  • Gera saídas: exibe as mudanças para o jogador (gera uma nova imagem/frame, toca um som, etc.).

Finalização#

Na finalização pode ser realizado o fechamento de arquivos, salvar o placar do jogo, fechar a janela do jogo, etc.

Checks de estudo#

Após a conclusão de cada handout, haverá alguma atividade extra para você treinar o que acabou de aprender. Ao final de todas as atividades você terá desenvolvido um jogo simples com uma nave se movendo no espaço. Cada atividade extra é um check. Você deve apresentar cada check concluido para algum professor para que possamos acompanhar o seu desenvolvimento.

Além disso, cada check concluido antes da prova de Pygame vale 0.1 pontos extras! Ou seja, se você concluir os 10 checks antes da prova, você terá 1 ponto extra nas provas de Pygame.

Agora, mãos à obra!


  1. Uma biblioteca é essencialmente um conjunto de módulos e funcionalidades que adicionam novas capacidades ao Python.