Este blog é um complemento do nosso canal no YouTube. Clique em @CanalQb para seguir e acompanhar nossos vídeos!

Sugestões de pesquisas

Script Python para movimentação livre de objetos na tela com Pygame

#Python; #Programação; #Pygame
@CanalQb 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.

Postar um comentário

Comente só assim vamos crescer juntos!
CanalQb mais próximo Quer falar com o CanalQb?
Em que posso te ajudar?
Fale comigo