Seu primeiro jogo de plataforma: gravidade, pulo e chão
O jogo de plataforma é o melhor segundo projeto possível: ele força você a usar variáveis, condicionais, loops e colisão — os quatro pilares de qualquer jogo. Neste tutorial montamos a física de um personagem que anda, cai e pula sobre plataformas, tudo com blocos.
Antes de começar, crie um ator para o personagem e um ator para o chão (pode ser um retângulo comprido posicionado na parte de baixo do palco).
Passo 1 — Gravidade
Crie no personagem uma variável local vy (velocidade vertical). A ideia central de toda física de plataforma: a cada quadro, a gravidade diminui vy, e vy é somada à posição Y.
quando iniciar:
mude vy para 0
sempre:
adicione -1 a vy // gravidade puxa para baixo
adicione vy a y // aplica a velocidadeAperte Play: o personagem cai acelerando, como na vida real. O valor -1 é a força da gravidade — experimente -0.5 para uma queda “lunar” ou -2 para algo mais pesado.
Passo 2 — Parar no chão
Dentro do mesmo “Sempre”, depois de aplicar vy, verifique a colisão com o chão. Enquanto estiver tocando o chão, empurre o personagem para cima 1 pixel por vez e zere vy:
repita até não (tocando em Chão):
adicione 1 a y
mude vy para 0
mude noChao para verdadeiroCrie também a variável local noChao: vamos precisar dela para o pulo. Defina noChao como falso no começo de cada quadro, antes da checagem.
Subir 1 pixel por vez (em vez de teleportar) faz o personagem assentar exatamente sobre a superfície, mesmo em plataformas de alturas diferentes.
Passo 3 — Pulo
Pular é simplesmente dar um impulso positivo a vy — mas só quando o personagem está no chão, senão ele “voa” apertando repetidamente:
se (tecla espaço pressionada?) e noChao:
mude vy para 14O número 14 é a força do pulo. Junto com a gravidade -1, ele determina a altura máxima: vy diminui 1 por quadro, então o personagem sobe por 14 quadros antes de começar a cair, formando o arco natural de um pulo.
Passo 4 — Movimento lateral com aceleração
Movimento instantâneo (somar 5 a X direto) funciona, mas fica “duro”. Jogos bons usam aceleração: uma variável vx que cresce gradualmente até um máximo e desacelera com atrito:
se tecla seta direita pressionada:
adicione 0.8 a vx
se tecla seta esquerda pressionada:
adicione -0.8 a vx
mude vx para vx * 0.85 // atrito
adicione vx a xO fator 0,85 é o atrito: a cada quadro a velocidade perde 15%. Isso cria a sensação de derrapagem suave dos clássicos de plataforma. Quanto mais perto de 1, mais “escorregadio” o chão.
Passo 5 — Plataformas atravessáveis por baixo
Detalhe que separa um plataforma bom de um frustrante: o jogador só deve pousar na plataforma se vier de cima caindo. Se estiver subindo (vy > 0), a colisão deve ser ignorada. Guarde a posição dos pés do personagem no quadro anterior e só aceite o pouso quando os pés estavam acima do topo da plataforma:
se (tocando em Plataforma) e (vy < 0) e (pesAnteriores ≥ topoDaPlataforma):
// pousa: alinhe Y ao topo e zere vySem essa checagem, o personagem “gruda” na plataforma ao encostar por baixo durante o pulo — um bug clássico.
Para onde ir agora
- ▸Adicione moedas com clones (tutorial “Clones na prática”).
- ▸Construa fases a partir de uma lista de tiles (tutorial “Variáveis e listas”).
- ▸Anime o personagem com spritesheet (tutorial “Spritesheets e animação”).
- ▸Adicione scrolling: em vez de mover o personagem pelo palco, mova o mundo na direção oposta e some o deslocamento a uma variável global scrollX.
Pronto para colocar em prática?
Abrir o editor