Como Fazer Flappy Bird no Scratch: Passo a Passo para Iniciantes

Flappy Bird no Scratch passo a passo: gravidade com variável, canos com clones, colisão, pontuação e game over. Tutorial completo para crianças e iniciantes.
Fazer um Flappy Bird no Scratch é um dos melhores projetos para quem está começando a programar jogos, seja uma criança de 9 anos, um adolescente curioso ou um adulto acompanhando o filho ou aluno. O jogo inteiro cabe em uma tarde, usa pouquíssimos blocos e, mesmo assim, ensina os conceitos que aparecem em qualquer jogo profissional: gravidade, colisão, pontuação e game over. Neste tutorial você vai montar tudo passo a passo, bloco por bloco, em português.
Se você nunca abriu o Scratch na vida, vale dar uma olhada antes no nosso guia de como criar jogo no Scratch para conhecer a interface. Mas se você já sabe onde ficam os blocos e como arrastar um sprite, pode seguir direto por aqui.
Por que o Flappy Bird é o primeiro jogo perfeito
O Flappy Bird original virou febre mundial em 2014 com uma única mecânica: tocar na tela para o pássaro subir. Nada de menu complexo, fases, inventário ou história. Um toque, uma ação.
É exatamente isso que o torna perfeito como projeto de aprendizado:
- Uma mecânica só. O jogador faz uma única coisa: apertar para subir. Menos regras significa menos scripts e menos lugares para se perder.
- Resultado rápido. Em menos de uma hora o pássaro já está caindo e pulando na tela. Ver o jogo funcionando cedo mantém a motivação lá em cima.
- Conceitos de verdade. Gravidade simulada, geração de obstáculos, aleatoriedade, colisão e placar. São os mesmos fundamentos de jogos grandes, só que em miniatura.
- Fácil de mostrar. A criança termina e já pode desafiar os amigos e a família a bater o recorde. Isso não tem preço.
Vamos ao passo a passo.
Preparando o projeto
Abra o site do Scratch (scratch.mit.edu) e clique em "Criar". Você vai precisar de:
- Um sprite de pássaro. Pode usar um da biblioteca do Scratch (procure por "parrot" ou qualquer passarinho) ou desenhar o seu no editor de fantasias. Diminua o tamanho para algo entre 30 e 50 para ele caber bem entre os canos.
- Um sprite de cano. Desenhe um retângulo verde comprido no editor de fantasias. Uma dica: desenhe o cano de cima e o de baixo na mesma fantasia, com um vão no meio por onde o pássaro vai passar. Assim um único sprite resolve o obstáculo inteiro.
- Um cenário. Escolha um fundo de céu na biblioteca de cenários ou pinte um azul com nuvens.
Apague o gato padrão se não for usar (botão direito no sprite, "apagar").
Como fazer o Flappy Bird no Scratch: o pássaro e a gravidade
Aqui está o coração do jogo. O Scratch não tem um bloco de gravidade pronto, e isso é ótimo: você vai construir a sua.
Criando a variável velocidade y
Na categoria "Variáveis", clique em "Criar uma variável" e chame de velocidade y. Marque "para todos os sprites" ou "apenas para este sprite", tanto faz neste projeto. Essa variável guarda o quão rápido o pássaro está subindo ou caindo naquele instante.
Agora monte este script no sprite do pássaro:
- "quando bandeira verde for clicada"
- "vá para x: -100 y: 0" (posição inicial, à esquerda do centro)
- "mude velocidade y para 0" (zera a velocidade no começo)
- "sempre" e, dentro dele:
- "mude velocidade y por -1"
- "mude y por velocidade y"
Clique na bandeira verde e observe: o pássaro cai, e cai cada vez mais rápido. Isso acontece porque a cada volta do "sempre" a velocidade fica mais negativa (-1, -2, -3...) e o pássaro desce essa quantidade em y. É aceleração de verdade, igualzinha à física que ele vai ver na escola.
O pulo: apertar para subir
Agora o toque mágico. Adicione um segundo script no pássaro:
- "quando a tecla espaço for pressionada"
- "mude velocidade y para 10" (use o bloco "mude velocidade y para", que define o valor, e não o "mude por", que soma)
Aperte espaço enquanto o pássaro cai. Ele dá aquele impulso para cima e a gravidade volta a puxá-lo para baixo. Pronto, essa é a mecânica inteira do Flappy Bird. Se quiser que funcione com clique do mouse também, repita o script com o bloco "quando este sprite for clicado" no cenário, ou verifique "mouse pressionado?" dentro do laço.
Dica de acabamento: adicione "aponte para a direção 90" no início e experimente inclinar o pássaro um pouco para cima no pulo e para baixo na queda. Fica muito mais vivo.
Os canos: clones e altura aleatória
Se você criasse um sprite novo para cada cano, o projeto viraria uma bagunça. A solução elegante do Scratch são os clones: um sprite molde que fabrica cópias de si mesmo.
No sprite do cano, monte o script gerador:
- "quando bandeira verde for clicada"
- "esconda" (o molde nunca aparece, só os clones)
- "sempre" e, dentro:
- "crie clone de mim mesmo"
- "espere 2 segundos"
E agora o script que dá vida a cada clone:
- "quando eu começar como clone"
- "vá para x: 240 y: número aleatório entre -60 e 60" (nasce na borda direita, numa altura sorteada)
- "mostre"
- "repita até que x posição < -240" e, dentro:
- "mude x por -4"
- "apague este clone"
Vamos traduzir o que está acontecendo. A cada 2 segundos nasce um clone na direita da tela. O bloco "número aleatório entre -60 e 60" sorteia a altura do vão, então nenhuma partida é igual à outra. O clone desliza para a esquerda 4 passos por vez e, quando sai da tela, se apaga sozinho para não pesar o jogo.
Clique na bandeira verde: o pássaro cai e pula, e os canos desfilam pela tela. Já parece um jogo de verdade, só falta ele reagir quando algo dá errado.
Colisão: tocou, perdeu
No Flappy Bird, encostar em qualquer coisa encerra a partida. A detecção fica no script do clone do cano. Dentro do laço "repita até que" que move o clone, adicione:
- "se tocando em Pássaro? então" (o bloco "tocando em" fica na categoria Sensores, escolha o nome do seu sprite de pássaro no menu)
- "transmita fim de jogo" (crie a mensagem "fim de jogo" na categoria Eventos)
E no sprite do pássaro, trate a borda também. Dentro do "sempre" da gravidade, adicione:
- "se y posição < -170 então" (chão)
- "transmita fim de jogo"
Por que usar "transmita"? Porque vários sprites precisam reagir ao fim de jogo ao mesmo tempo: o pássaro para, os canos somem, a tela de game over aparece. Uma mensagem transmitida avisa todo mundo de uma vez, como um alto-falante do jogo.
No pássaro e no cano, adicione um script:
- "quando eu receber fim de jogo"
- "pare todos" (ou, se quiser uma tela de game over bonita, use "pare outros scripts do sprite" e mostre um letreiro antes)
Pontuação: 1 ponto por cano
Crie uma variável chamada pontos. No script da bandeira verde do pássaro, adicione "mude pontos para 0" para zerar a cada partida.
A forma mais simples de pontuar: no script do clone do cano, logo depois do laço de movimento chegar na posição do pássaro, some o ponto. Uma maneira prática é adicionar, dentro do laço de movimento do clone:
- "se x posição < -100 então" (o clone acabou de passar pelo pássaro, que está em x -100)
- "mude pontos por 1"
- "espere até que x posição < -101" (truque para não somar várias vezes o mesmo cano)
Outra opção mais limpa: use uma variável "para este sprite apenas" chamada "já pontuou", que começa em 0 e vira 1 depois de somar. O importante é que cada cano dê exatamente 1 ponto.
Deixe a variável pontos visível no palco (marque a caixinha ao lado dela). O Scratch mostra o placar automaticamente.
Tela de game over e reiniciar
Para dar um acabamento profissional:
- Crie um sprite novo com a palavra "GAME OVER" desenhada no editor de fantasias.
- Script dele: "quando bandeira verde for clicada" seguido de "esconda". E outro: "quando eu receber fim de jogo" seguido de "mostre".
- Reiniciar é simples: a bandeira verde já reinicia tudo, porque todos os scripts começam com "quando bandeira verde for clicada" e zeram posição, velocidade e pontos. Se quiser reiniciar com uma tecla, use "quando a tecla r for pressionada" com "transmita reiniciar" e trate a mensagem em cada sprite.
Teste a partida completa: começa, pula, desvia, bate, aparece o game over, reinicia. Se algo estranho acontecer, releia o script daquele sprite com calma. Debugar faz parte do jogo, literalmente.
Melhorias para deixar o jogo com a sua cara
Com o básico rodando, é hora de brincar de game designer:
- Sons. Na aba Sons, adicione um efeito de asa no pulo com "toque o som", um "pop" ao pontuar e um som dramático no game over.
- Dificuldade crescente. Crie uma variável "velocidade do cano" começando em -4 e use ela no "mude x por". A cada 5 pontos, mude a variável por -1. O jogo acelera e a tensão sobe.
- Vão mais apertado. Faça duas ou três fantasias de cano com vãos de tamanhos diferentes e sorteie a fantasia com "número aleatório entre".
- Recorde. Crie uma variável "recorde" e, no game over, use "se pontos > recorde então" com "mude recorde para pontos". Bater o próprio recorde vicia.
- Animação. Alterne as fantasias do pássaro com "próxima fantasia" para as asas baterem.
Cada melhoria dessas é um mini desafio de lógica. Deixe a criança inventar as próprias regras: e se tivesse um power-up? E se o cenário mudasse de dia para noite? O projeto vira dela de verdade quando ela quebra o tutorial.
E depois do Scratch? A ponte para uma engine de verdade
O Scratch é uma escola incrível, mas ele tem um teto: os jogos rodam só no site, os blocos limitam sistemas mais complexos e o mercado de trabalho usa outras ferramentas. A boa notícia é que quem fez o Flappy Bird no Scratch já entende variáveis, laços, condicionais, eventos e clones. Isso é programação de verdade, só escrita de outro jeito.
O próximo passo natural é refazer este mesmo jogo numa engine profissional e gratuita. Temos o tutorial completo de Flappy Bird na Godot, onde a gravidade, os canos e a pontuação reaparecem, agora em GDScript, uma linguagem de texto feita para ser simples. Comparar as duas versões do mesmo jogo é a melhor aula de transição que existe.
E se você está em dúvida sobre o momento certo de dar esse salto, o guia sobre quando migrar do Scratch para a Godot mostra os sinais de que a criança (ou você) já está pronta: quando os blocos começam a atrapalhar em vez de ajudar, é hora.
Até lá, bandeira verde clicada e bons voos.
Perguntas frequentes
Qual idade é ideal para fazer Flappy Bird no Scratch?
A partir dos 8 anos a maioria das crianças consegue seguir o tutorial com um adulto por perto. A partir dos 10, muitas fazem sozinhas. O projeto usa variáveis e clones, então é um ótimo segundo ou terceiro projeto depois de algo mais simples como um jogo de pegar objetos.
Preciso instalar alguma coisa para fazer o jogo?
Não. O Scratch roda direto no navegador em scratch.mit.edu, de graça. Basta criar uma conta gratuita para salvar o projeto na nuvem. Também existe a versão offline do Scratch para quem não tem internet estável.
Como faço a gravidade no Scratch se não existe bloco de gravidade?
Você simula a gravidade com uma variável chamada velocidade y. Dentro de um bloco sempre, mude velocidade y por -1 e depois mude y por velocidade y. Isso faz o pássaro cair cada vez mais rápido, igual à gravidade de verdade. O pulo é só definir velocidade y para 10 quando o jogador aperta espaço.
Por que usar clones para os canos em vez de vários sprites?
Com clones, um único sprite de cano gera cópias infinitas com o bloco crie clone de. Cada clone nasce numa altura aleatória, desliza da direita para a esquerda e se apaga sozinho ao sair da tela. Sem clones, você teria que duplicar sprites na mão e o jogo ficaria limitado e bagunçado.
O pássaro atravessa o cano sem morrer, o que fiz de errado?
Quase sempre a verificação de toque está no sprite errado ou fora do laço sempre. A detecção tocando em precisa rodar dentro de um bloco sempre no script do clone do cano (ou do pássaro), verificando a cada quadro. Se ela roda só uma vez, o jogo nunca percebe a colisão.
Depois do Flappy Bird no Scratch, qual o próximo passo?
Refazer o mesmo jogo numa engine de verdade. O Flappy Bird é curto e você já entende a lógica, então dá para focar só na ferramenta nova. A Godot é o caminho natural: gratuita, leve e com GDScript, uma linguagem de texto simples de aprender para quem veio dos blocos.


