Voltar para o Blog
Quest Log

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

Tela do Scratch mostrando um pássaro amarelo voando entre canos verdes, com blocos de programação coloridos ao lado

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:

  1. 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.
  2. 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.
  3. 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.

Próximo nível
Quer aprender isso na prática?

No CursoGame.Dev você sai dos tutoriais soltos e constrói jogos publicáveis, com trilha progressiva, quests práticas e feedback real.

Conhecer a plataforma
+500 alunos4.9/5Garantia 7 dias

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:

  1. Crie um sprite novo com a palavra "GAME OVER" desenhada no editor de fantasias.
  2. Script dele: "quando bandeira verde for clicada" seguido de "esconda". E outro: "quando eu receber fim de jogo" seguido de "mostre".
  3. 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.