Física
Física Cinemática 4.0
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()
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.