Física

Física Cinemática 4.0

Módulo: PPlay.physics | Dificuldade: Avançado

Criar jogos de plataforma do zero envolve muita matemática complexa. O Motor Cinemático 4.0 resolve o temido “Corner Snapping” (ficar preso em quinas) dividindo a movimentação e a colisão por eixos (X e Y separadamente).

1. Acoplando a Física

Em vez de programar a gravidade manualmente no seu while True, você cria o motor físico e o injeta no seu personagem. A engine cuidará de todo o cálculo de inércia e limites de velocidade (Terminal Velocity).

Comando Ação
motor = Physics(gravidade=2500) Cria as leis da física da sua fase. Valores maiores fazem o pulo cair mais rápido.
player.setup_physics(motor) Transforma o Sprite em um KinematicBody.
player.update_physics(solidos) Aplica a gravidade, move o objeto e o impede de atravessar a lista de sólidos passados.

2. Código de Plataforma Perfeito

from PPlay.window import Window
from PPlay.sprite import Sprite
from PPlay.physics import Physics

janela = Window(800, 600, "Plataforma Pro")

# 1. Setup
motor = Physics(gravidade=2500)
player = Sprite("mario.png")
player.setup_physics(motor)

chao = Sprite("bloco.png")
chao.set_position(0, 500)
lista_paredes = [chao]

while True:
    janela.set_background_color("skyblue")
    
    # 2. Movimento Lateral (Usa as setas automaticamente)
    player.move_key_x(350)
    
    # 3. Pulo (O motor checa se está no chão para você!)
    if janela.keyboard.key_pressed("SPACE"):
        player.pular(900)

    # 4. Executa a Matemática
    player.update_physics(lista_paredes)
    
    chao.draw()
    player.draw()
    janela.update()
💡 Dica do Sênior: O “Feeling” Invisível

Ao usar o update_physics, o seu personagem ganha duas mecânicas secretas usadas em jogos AAA:
Coyote Time: O jogador ainda pode pular por 150ms mesmo após escorregar para fora de uma plataforma.
Jump Buffering: Se ele apertar pular milissegundos antes de tocar o chão, a engine “lembra” do comando e pula no frame exato do impacto.