|
Python - Script de movimentação livre de objetos na tela usando Pygame | |
| Canal Qb | ||
Script Python para movimentação livre de objetos na tela com Pygame
Este tutorial apresenta um script em Python que utiliza a biblioteca Pygame para criar uma janela gráfica onde múltiplos objetos podem se mover livremente, colidindo com as bordas da janela e invertendo sua direção. O código é uma ótima base para projetos de animação, jogos ou simulações simples.
Entendendo o código
O script define cores, dimensões da janela e cria um conjunto de objetos com formas e velocidades distintas. Cada objeto é representado por um dicionário que armazena a forma (retângulo ou elipse), posição, cor e velocidade. A movimentação é controlada pela função mover(), que verifica colisões com as bordas e altera a direção do objeto conforme necessário.
Exemplo completo do código Python
import pygame, time
# Definindo as cores
PRETO = (0, 0, 0)
AMARELO = (255, 255, 0)
VERMELHO = (255, 0, 0)
VERDE = (0, 255, 0)
AZUL = (0, 0, 255)
# Definindo as dimensões da janela
LARGURAJANELA = 500
ALTURAJANELA = 400
def mover(figura, dim_janela):
borda_esquerda = 0
borda_superior = 0
borda_direita = dim_janela[0]
borda_inferior = dim_janela[1]
if figura['objRect'].top < borda_superior or figura['objRect'].bottom > borda_inferior:
# A figura atingiu o topo ou a base da janela
figura['vel'][1] = -figura['vel'][1]
if figura['objRect'].left < borda_esquerda or figura['objRect'].right > borda_direita:
# A figura atingiu o lado esquerdo ou direito da janela
figura['vel'][0] = -figura['vel'][0]
figura['objRect'].x += figura['vel'][0]
figura['objRect'].y += figura['vel'][1]
# Inicializando o Pygame
pygame.init()
# Criando a janela
janela = pygame.display.set_mode((LARGURAJANELA, ALTURAJANELA))
pygame.display.set_caption('Animação')
# Criando as figuras
f1 = {'objRect': pygame.Rect(300, 80, 40, 80), 'cor': VERMELHO, 'vel': [0,-5], 'forma': 'ELIPSE'}
f2 = {'objRect': pygame.Rect(200, 200, 20, 20), 'cor': VERDE, 'vel': [5,5], 'forma': 'ELIPSE'}
f3 = {'objRect': pygame.Rect(100, 150, 60, 60), 'cor': AZUL, 'vel': [-5,5], 'forma': 'RETANGULO'}
f4 = {'objRect': pygame.Rect(200, 150, 80, 40), 'cor': AMARELO, 'vel': [5,0], 'forma': 'RETANGULO'}
figuras = [f1, f2, f3, f4]
deve_continuar = True
# Loop principal do jogo
while deve_continuar:
# Verificando eventos (fechar janela)
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
deve_continuar = False
# Preenchendo o fundo com preto
janela.fill(PRETO)
for figura in figuras:
# Movendo a figura
mover(figura, (LARGURAJANELA, ALTURAJANELA))
# Desenhando a figura na janela
if figura['forma'] == 'RETANGULO':
pygame.draw.rect(janela, figura['cor'], figura['objRect'])
elif figura['forma'] == 'ELIPSE':
pygame.draw.ellipse(janela, figura['cor'], figura['objRect'])
# Atualizando a tela
pygame.display.update()
# Pequena pausa para controlar a velocidade da animação
time.sleep(0.02)
# Encerrando o Pygame
pygame.quit()
Como usar este script
- Certifique-se de ter o Python instalado em sua máquina.
- Instale a biblioteca Pygame com o comando
pip install pygame. - Salve o código acima em um arquivo, por exemplo,
animacao.py. - Execute o script usando o terminal com o comando
python animacao.py. - A janela exibirá quatro objetos coloridos se movendo e quicando nas bordas da tela.
Aplicações práticas
Este exemplo pode ser expandido para:
- Desenvolvimento de jogos simples com movimentação e colisões.
- Simulações gráficas para aprendizado de física básica.
- Criação de interfaces animadas para aplicações visuais.
Referências e links oficiais
Nota: Este conteúdo é educacional. Ao criar seus próprios projetos ou investir tempo em desenvolvimento, faça sempre uma análise individual dos riscos e objetivos.

Comentários
Comente só assim vamos crescer juntos!