Computação Gráfica: Introdução ao PyGame
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
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.