Seu primeiro jogo de plataforma: gravidade, pulo e chão

12 min de leitura·Atualizado em 11 de junho de 2026

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 velocidade

Aperte 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 verdadeiro

Crie 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 14

O 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 x

O 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 vy

Sem 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