Mudanças entre as edições de "Introdução a Python - Parte 2"
Linha 35: | Linha 35: | ||
#!/usr/bin/python3 | #!/usr/bin/python3 | ||
− | import sys | + | import sys |
+ | import pygame | ||
+ | |||
+ | # inicia as estruturas internas do pygame | ||
pygame.init() | 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 | size = width, height = 320, 240 | ||
speed = [2, 2] | speed = [2, 2] | ||
− | black = 0, 0, 0 | + | black = (0, 0, 0) |
+ | # cria a tela da janela, dimensionando de acordo com a variável "size" | ||
screen = pygame.display.set_mode(size) | screen = pygame.display.set_mode(size) | ||
+ | # carrega a imagem da bola | ||
ball = pygame.image.load("ball.gif") | 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() | ballrect = ball.get_rect() | ||
+ | # laço que nunca termina ... | ||
while True: | while True: | ||
+ | # trata quaisquer eventos pendentes do pygame | ||
for event in pygame.event.get(): | 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() | 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) | 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: | if ballrect.left < 0 or ballrect.right > width: | ||
speed[0] = -speed[0] | 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: | if ballrect.top < 0 or ballrect.bottom > height: | ||
speed[1] = -speed[1] | speed[1] = -speed[1] | ||
+ | # pinta toda a tela de preto | ||
screen.fill(black) | screen.fill(black) | ||
+ | |||
+ | # copia a imagem da bola para a região definida por "ballrect" | ||
screen.blit(ball, ballrect) | screen.blit(ball, ballrect) | ||
+ | |||
+ | # mostra a imagem que foi copiada | ||
pygame.display.flip() | pygame.display.flip() | ||
</syntaxhighlight> | </syntaxhighlight> |
Edição das 13h51min 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 \
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()
... e é necessário copiar este arquivo de imagem para seu computador (para mesmo diretório onde está o programa exemplo).
Algumas observações:
- a bola provavelmente se movimenta muito rápido na tela ... reduza sua velocidade para melhor visualizá-la.