Startec

Startec

Uma pequena introdução ao pygame - 00 · Cleverson

Mai 23, às 23:53

·

7 min de leitura

·

0 leituras

Fala Dev🖖 Neste post, vou fornecer uma breve introdução ao PyGame e mostrar como podemos aprender algoritmos e Design Patterns através de jogos em futuros posts. No entanto, hoje vamos f...
Uma pequena introdução ao pygame - 00 · Cleverson

Fala Dev🖖
Neste post, vou fornecer uma breve introdução ao PyGame e mostrar como podemos aprender algoritmos e Design Patterns através de jogos em futuros posts. No entanto, hoje vamos focar nos conceitos básicos do PyGame. Você está pronto para embarcar nessa jornada??

Introdução

Bem, para ser breve e direto ao ponto, o principal objetivo do PyGame é permitir o desenvolvimento de games utilizando a linguagem Python. Mas o foco do Pygame é apenas jogos em 2D e não 3D. Neste artigo vamos aprender o básico sobre o PyGame e alguns comandos legais.

Instalando o PyGame

⚠️ Antes de começar a codar e ver as funções, vamos precisar instalar o PyGame.

Para poder usar o PyGame vai ser preciso instalar o Python. Caso você não tenha o Python instalado na sua máquina basta acessar esse link: https://www.python.org/downloads e instalar a versão mais recente.

python-install-img

se você estiver no Linux basta usar esse comando no seu terminal:

sudo apt-get update
sudo apt-get install python3

Agora com o Python instalado, vamos instalar o PyGame. Basta executar esses comandos abaixo no seu cmd/terminal.

  • para instalar basta usar este comando:
pip install pygame
  • se você estiver no Linux basta usar este comando:
pip3 install pygame

Para testar se o PyGame foi instalado corretamente, basta importar a biblioteca e executar o Script.

import pygame

Se não aparecer nenhuma mensagem de erro, show, está tudo pronto para poder começar a codar e criar seu primeiro jogo com Python.

Criando a primeira janela com PyGame

para criar uma janela onde sera renderizado o jogo com PyGame é bem simples:

import pygame, sys
from pygame.locals import *
pygame.init()
SURFACE = pygame.display.set_mode((300,300))
pygame.display.set_caption("caption")
while True:
 for event in pygame.event.get():
 if event.type == QUIT:
 pygame.quit()
 sys.exit()
 pygame.display.update()

preview

Vamos aprender o que cada função serve.

import pygame, sys

A primeira linha do código estamos um import que importa o pygame e o sys que nos permite usar as diversas funções como gráfico, sons e entre outras features disponíveis.

from pygame.locals import *

Neste trecho de código, estamos importando todos os nomes (funções, classes, constantes etc.) do módulo pygame.locals. Assim nos permitindo usar funções, classes, constantes só pelo nome, sem a necessidade de usar prefixo para chamar uma função pygame.locals.funcao_x().

pygame.init() 

O init() é a função inicial do projeto, você não precisa saber o que ela faz, mas esta função tem que esta presente para que outras funções do PyGame possa funcionar.

SURFACE = pygame.display.set_mode((tamanho_eixo_X, tamanho_eixo_Y))

Já a função pygame.display.set_mode((tamanho, tamanho)) é utilizada para definir o tamanho da janela do jogo. Observe que a função recebe dois valores em uma tuple onde será definido o tamanho. O primeiro valor da tupla está relacionada ao tamanho do eixo X (Horizontal) e o segundo valor corresponde ao tamanho do eixo Y (vertical). A constante SURFACE vai ser explicado em outro post fututo, mas para não deixar dúvida ela vai armazenar o objeto pygame.Surface para fazer algumas configurações/alterações.

pygame.display.set_caption("caption")

Não vou falar muito sobre esta função. Mas de forma direta, ela vai servir para adicionar um título a sua janela.

while True:
 for event in pygame.event.get():

Nesta parte vamos precisar de um loop para que o programa não feche na primeira vez que executar. Esse loop vai ser importante porque nele vamos gerenciar todos os eventos, ações e atualizações que precisamos fazer no jogo.

Observe que dentro do while utilizamos um segundo loop for, para percorrer sobre uma lista de eventos retornada pela função pygame.event.get(). Essa função é responsável por pegar todos os eventos/ações do jogo. Nela podemos verificar se alguma tecla do teclado foi pressionada, se existe alguma ação do mouse ou se o usuário deseja fechar a janela do jogo.

if event.type == QUIT:
 pygame.quit()
 sys.exit()

Não vou me aprofundar neste trecho do código. Mas basicamente, esse trecho vai verificar se exite algum evento de fechamento da janela. A função pygame.quit() vai ser importante, pois, com ela vamos desativar a biblioteca corretamente, liberando todos os recursos associados a ela como a limpeza da memória o fechamento da janela e a liberação de outros recursos do sistema que foram alocados durante a execução do programa. E o sys.exit() vai encerrar o programa imediatamente.

pygame.display.update()

A função pygame.display.update() desempenha o papel de atualizar toda a área da tela. Porém, neste post, não nos aprofundaremos nela.

Desenhado figuras com pygame

import pygame, sys
from pygame.locals import *
pygame.init()
DISPLAYSURF = pygame.display.set_mode((500,500))
pygame.display.set_caption("caption")
# configurando cores
BLACK = ( 0,0,0)
WHITE = (255, 255, 255)
RED = (255,0,0)
GREEN = ( 0, 255,0)
BLUE = ( 0,0, 255)
# mudar a cor de fundo
DISPLAYSURF.fill((255, 255, 255))
#desenhando figuras
pygame.draw.rect(DISPLAYSURF, RED, (200, 150, 100, 50))
pygame.draw.ellipse(DISPLAYSURF, RED, (300, 250, 40, 80), 1)
pygame.draw.circle(DISPLAYSURF, BLUE, (300, 50), 20, 0)
while True:
 for event in pygame.event.get():
 if event.type == QUIT:
 pygame.quit()
 sys.exit()
 pygame.display.update()

Antes de mostrar as funções de desenho, vamos ver algumas observações no código!

1. A função fill() vai ser responsável por mudar a cor do Background da janela. No exemplo que fiz, eu mudei a cor de fundo para branco. Observe que as cores recebe três valores em uma tuple onde a primeira posição é responsável pela cor vermelha a segunda pela cor verde e a última pela cor azul, RGB.

2. As constantes RED, BLACK, WHITE, GREEN e BLUE são responsáveis pelas cores. Observe o seguinte que elas recebem três valores em uma tuple.

Agora vamos ver as funções:

  • pygame.draw.rect(DISPLAYSURF, Cor, Retângulo, Espessura) função utilizada para desenhae retângulo.

    • Retângulo define a posição e o tamanho do retângulo. A tupla consiste em (x, y, largura, altura).
    • Espessura é responsavel por definir a espessura da linha de contorno do retângulo. Se não for especificado, a espessura padrão é 0, o que significa que o retângulo será preenchido com a cor definida.
    • Cor é uma tupla de três valores que representa a cor do retângulo no formato RGB (vermelho, verde e azul).
  • pygame.draw.ellipse(DISPLAYSURF, Cor, Elipse, Espessura) função utilizada para desenhar uma elipse.

    • Elipse define a posição e o tamanho do retângulo. A tupla consiste em (x, y, largura, altura).
    • Espessura é responsável por definir a espessura da linha de contorno do retângulo. Se não for especificado, a espessura padrão é 0, o que significa que o retângulo será preenchido com a cor definida.
    • Cor é uma tupla de três valores que representa a cor do retângulo no formato RGB (vermelho, verde e azul).
  • pygame.draw.circle(DISPLAYSURF, Cor, Centro, Raio, Espessura) função utilizada para desenhar círculos.

    • Centro define a posição e o tamanho do retângulo. A tupla recebe (x, y) posição onde o círculo vai ser desenhado.
    • Raio parâmetro que define o raio do círculo.
    • Espessura é responsável por definir a espessura da linha de contorno do retângulo. Se não for especificado, a espessura padrão é 0, o que significa que o retângulo será preenchido com a cor definida.
    • Cor é uma tupla de três valores que representa a cor do retângulo no formato RGB (vermelho, verde e azul).

Existem outras função, mas não vou abordar neste post. Porém, na documentação do PyGame explica com mais detalhe sobre cada funções.

Conclusão

Obrigado a você que leu até aqui!

Espero que tenha gostado do post, pois é a minha primeira postagem com foco em um tutorial. Espero que tenha sido mais simples e direto nas minhas explicações. Se você quiser compartilhar com mais conhecimento nesse post, deixe seu comentário.

Lembrando que o foco deste post é uma rápida e pequena introdução ao PyGame. Pois existe diversa coisa a ser discutida sobre o PyGame que não acaba aqui.


Continue lendo

Tech Crunch

Deal Dive: Why this startup chose to sell itself over raising a Series A
Heroes Jobs was recently acquired after realizing its company was better off not alone Not all startups are built for a billion-dollar exit — or to grow as a stand-alone company at all. The...

Hoje, às 16:00

DEV

Mobile App ideas
What interesting, useful and simple mobile apps can be made? What do you think? Maybe there are problems that can be solved with this app? Share your ideas. Of course, todo list and weather apps are a great...

Hoje, às 14:51

AI | TechCrunch

This week in AI: AI heavyweights try to tip the regulatory scales
Keeping up with an industry as fast-moving as AI is a tall order. So until an AI can do it for you, here’s a handy roundup of the last week’s stories in the world of machine learning, along with notable...

Hoje, às 14:35

DEV

The Evolution and Impact of MLOps: understanding MLOps
Machine Learning Operations, or MLOps, is the missing bridge between machine learning, data science, and data engineering. It has emerged as the link that unifies these functions more seamlessly than ever...

Hoje, às 14:00

HackerNoon

162 Stories To Learn About Programming Languages | HackerNoon
May 27th 2023 New Story25m by @learn Too Long; Didn't ReadPeople Mentionedprogramming#programming-languages#[email protected] LearnReceive Stories from @learnGet free API security automated scan in...

Hoje, às 13:56

HackerNoon

117 Stories To Learn About Programming Tips | HackerNoon
May 27th 2023 New Story17m by @learn Too Long; Didn't ReadPeople Mentionedscience#programming-tips#learn#[email protected] LearnReceive Stories from @learnGet free API security automated scan in...

Hoje, às 13:56

HackerNoon

279 Stories To Learn About Programming | HackerNoon
May 27th 2023 New Story51m by @learn Too Long; Didn't ReadPeople Mentionedprogramming#programming#learn#[email protected] LearnReceive Stories from @learnGet free API security automated scan in...

Hoje, às 13:56

DEV

How to use Mapbox in Next.js
Table of content Mapbox Setting up the Mapbox key Next.js Dependencies Adding key to Next.js configuration Initializing the map Adding styles Adding the map controls Loading the data Adding the...

Hoje, às 13:15

DEV

Add MUI v5 Theme Switcher in NextJs/React
Hello guys today i will show you how to add MUI Theme Switcher in your React App. Prerequisite of this tutorial is to have intermediate knowledge of React and MUI (formally known as material-UI) Lets...

Hoje, às 13:03

Showmetech

50 filmes que todo empreendedor deve assistir
Índice Fyre Festival – Fiasco no Caribe (2019)Como Ser Warren Buffett (2017)Fome de Poder (2016)Cães de Guerra (2016)Generation Startup (2016)Steve Jobs (2015)Joy: O Nome do Sucesso (2015)A Grande Aposta...

Hoje, às 13:00