![]() |
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.