Computação Gráfica: Introdução ao PyGame

De Aulas
Revisão de 09h50min de 15 de março de 2022 por Admin (discussão | contribs) (Criou página com 'Afluentes: Computação Gráfica = PyGame = O PyGame é um conjunto de bibliotecas para o desenvolvimento de jogos para a linguagem de programação Python. Ela é indep...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

Afluentes: Computação Gráfica

PyGame

O PyGame é um conjunto de bibliotecas para o desenvolvimento de jogos para a linguagem de programação Python. Ela é independente de plataforma e pode ser executada no Windows, Linux, MacOS, etc..

O PyGame trabalha com SDL (Simple DirectMedia Layer), uma biblioteca multimídia e multiplataforma escrita em C, com interface para diversas linguagens de programação. O SDL objetiva abstrair o tratamento de gráficos, sons, entradas, vídeos, eventos, etc., para facilitar a programação de aplicações multimídias para diversos sistemas operacionais.

O PyGame

Pygame é um "motor de jogo" ou em inglês "game engine". Um motor de jogo é um software ou um conjunto de bibliotecas usado na simplificação do desenvolvimento de jogos, por exemplo, para videogames e computadores.

As funcionalidades típicas fornecidas por um motor de jogo incluem o mecanismo de renderização (ou rendering engine) para gráficos 2D ou 3D, um mecanismo de detecção de colisão, suporte a sons, uma linguagem de script, suporte à animação, inteligência artificial e jogos pela internet.

Ou seja, é utilizado um motor de jogo que contém todas as funções visuais e de processamento como base do código, e a essência do jogo como a estratégia, o design e a ideia principal que serão realmente pensadas e estudadas para o jogo.

Game Loop

game loop

Tal como uma biblioteca de jogo, ela segue o ciclo de vida de um jogo baseado no 'game loop:

  • PROCESS_INPUT: Verifica todas as entradas e eventos, como teclado, mouse, dados de rede, etc.. Essa etapa é feita pela própria biblioteca do PyGame e abstraída ao desenvolvedor. Apenas usamos as informações coletadas nesse processo na próxima etapa do game loop.
  • EXECUTE: ou SIMULATE_GAME_WORLD, é a etapa em que as entradas, eventos e dados são utilizados para executar algo do jogo, como dar um tiro, movimentar o personagem conforme uma tecla foi pressionada, etc..
  • RENDER: é o processo de desenhar os elementos visuais do game.

Essas etapas são executadas a cada frame do jogo.

Antes e depois do game loop, são executadas duas etapas principais:

  • INIT: inicializa as bibliotecas que serão utilizadas, carrega os recursos do jogo, configura informações, etc.
  • END: desaloca os recursos e finaliza as bibliotecas.

Hello World no PyGame mostrando uma imagem