A Paineira exigia embalo: velocidade acumulada antes da curva. Aqui você aprende Pygame — e o jogo Pong nasce na pista.
RectNa pista de Palotina, a Paineira era a curva mais temida. Para virá-la sem cair, o piloto precisava de embalo: velocidade acumulada metros antes. No Pygame, o embalo é o loop principal — ele roda 60 vezes por segundo, acumulando frames, atualizando posições e redesenhando a tela.
Cada frame é uma pedalada. O loop não para enquanto o jogo estiver rodando —
assim como o piloto não para de pedalar enquanto está no circuito.
clock.tick(60) = 60 pedaladas por segundo.
# Estrutura base do game loop — a "pedalada" do Pygame
import pygame
pygame.init()
tela = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Circuito Ferradura — Pong da Pista")
clock = pygame.time.Clock()
rodando = True
while rodando:
# 1. Eventos (o piloto olha para a pista)
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
rodando = False
# 2. Lógica (calcular velocidade e posição)
bola.mover()
bola.verificar_colisao(raquete_esq, raquete_dir)
# 3. Desenho (o piloto entra na curva)
tela.fill((26, 122, 60)) # verde-pista
bola.desenhar(tela)
pygame.display.flip()
clock.tick(60) # 60 FPS = 60 pedaladas/segundo
A bola rebate nas paredes e nas raquetes. A física é simples: quando a bola toca uma borda, o sinal da velocidade se inverte. Isso é a programação da curva da Paineira: o piloto dobra a direção.
# Classe Bola — objeto com estado e comportamento
class Bola:
def __init__(self):
self.x, self.y = 400, 300
self.vx, self.vy = 5, 5
self.raio = 10
def mover(self):
self.x += self.vx
self.y += self.vy
# Rebater nas paredes superior e inferior
if (
self.y - self.raio <= 0
or self.y + self.raio >= 600
):
self.vy *= -1 # inverte — a curva da Paineira
Crie o jogo Pong da Pista completo: duas raquetes, uma bola, placar,
rebatimento nas paredes e detecção de ponto. Use as cores do Circuito Ferradura:
verde-pista #1a7a3c e amarelo-palotina #f4c430.