Mudanças entre as edições de "Introdução a Python - Parte 2"
Linha 98: | Linha 98: | ||
= Elementos da API pygame = | = Elementos da API pygame = | ||
+ | |||
+ | * [http://pygame.org/docs/#reference Referência] | ||
+ | |||
+ | |||
+ | A API Pygame dispõe de um conjunto de elementos que podem ser usados em aplicativos gráficos. Basicamente eles se dividem em: | ||
+ | * Representação da tela ou de um elemento gráfico (ex: uma imagem, como a da bola) | ||
+ | * Eventos, tais como os do mouse, teclado e temporizadores | ||
+ | * Cores e fontes | ||
+ | * Funções para desenho | ||
+ | * Imagens e Sprites | ||
+ | * Temporização | ||
+ | * Mouse e teclado | ||
+ | * ... e alguns outros | ||
+ | |||
+ | Nesta introdução a Python são apresentados alguns desses elementos, de forma que se possam implementar o jogo proposto ao final da oficina (ou algum outro que se ache mais interessante !). | ||
= Um jogo de memória = | = Um jogo de memória = |
Edição das 20h22min de 20 de outubro de 2016
Pygame é um conjunto de módulos Python projetados para a escrita de jogos. Pygame adiciona funcionalidade sobre a excelente biblioteca SDL. Isso possibilita que se criem jogos repletos de recursos e programas multimidia com a linguagem Python. Pygame é altamento portável e roda em praticamente todas as plataformas e sistemas operacionais. Pygame já foi transferido milhões de vezes, e sua página oficial já recebeu milhões de acessos. (traduzido do parágrafo inicial encontrado na página oficial)
Referências
- Página oficial Pygame
- Uma pequena introdução a Pygame
- Invent with Python: um livro online gratuito sobre Python e Pygame
- The Python Game Book
- Um tutorial para novatos
Como instalar
Em distribuições Ubuntu, a instalação de Pygame para Python3 deve ser feita com esta sequência de comandos:
sudo apt-get update
sudo apt-get install mercurial python3-dev python3-setuptools python3-numpy python3-opengl \
libav-tools libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsmpeg-dev \
libsdl1.2-dev libportmidi-dev libswscale-dev libavformat-dev libavcodec-dev \
libtiff5-dev libx11-6 libx11-dev fluid-soundfont-gm libfreetype6-dev \
xfonts-base xfonts-100dpi xfonts-75dpi xfonts-cyrillic fontconfig fonts-freefont-ttf
sudo apt-get install python3-pip
sudo apt-get build-dep python-pygame
sudo pip3 install hg+http://bitbucket.org/pygame/pygame
Um primeiro exemplo
Este primeiro exemplo mostra como se pode criar um pequeno programa com uma imagem em movimento. Muitos elementos de pygame já aparecem nesta simples demonstração ...
#!/usr/bin/python3
import sys
import pygame
# inicia as estruturas internas do pygame
pygame.init()
# algumas variáveis necessárias:
# size: tamanho da janela
# speed: velocidade da bola
# black: tupla que representa cor preta
size = width, height = 320, 240
speed = [2, 2]
black = (0, 0, 0)
# cria a tela da janela, dimensionando de acordo com a variável "size"
screen = pygame.display.set_mode(size)
# carrega a imagem da bola
ball = pygame.image.load("ball.gif")
# obtém o retângulo que contém as dimensões da imagem da bola
ballrect = ball.get_rect()
# laço que nunca termina ...
while True:
# trata quaisquer eventos pendentes do pygame
for event in pygame.event.get():
# apenas evento QUIT é considerado: ele faz com que a
# aplicação termine. Demais eventos são ignorados
if event.type == pygame.QUIT: sys.exit()
# move a bola de acordo com "speed". Isso muda as coordenadas do retângulo
# que a contém
ballrect = ballrect.move(speed)
# se limites horizontais de movimentação foram atingidos, então velocidade horizontal
# é invertida
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0]
# se limites verticais de movimentação foram atingidos, então velocidade vertical
# é invertida
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = -speed[1]
# pinta toda a tela de preto
screen.fill(black)
# copia a imagem da bola para a região definida por "ballrect"
screen.blit(ball, ballrect)
# mostra a imagem que foi copiada
pygame.display.flip()
Baixe os arquivos deste exemplo para experimentá-lo. O programa está no script ball.py.
Algumas observações:
- Antes de mais nada, o módulo pygame deve ser importado e inicializado (linhas 4 e 7)
- A bola provavelmente se movimenta muito rápido na tela ... reduza sua velocidade para melhor visualizá-la.
Elementos da API pygame
A API Pygame dispõe de um conjunto de elementos que podem ser usados em aplicativos gráficos. Basicamente eles se dividem em:
- Representação da tela ou de um elemento gráfico (ex: uma imagem, como a da bola)
- Eventos, tais como os do mouse, teclado e temporizadores
- Cores e fontes
- Funções para desenho
- Imagens e Sprites
- Temporização
- Mouse e teclado
- ... e alguns outros
Nesta introdução a Python são apresentados alguns desses elementos, de forma que se possam implementar o jogo proposto ao final da oficina (ou algum outro que se ache mais interessante !).