Como Fazer um Jogo de Nave no Scratch: Passo a Passo Completo

Como fazer um jogo de nave no Scratch passo a passo: nave com setas, tiros com clones, inimigos, placar de pontos, vidas e game over. Grátis, no navegador.
Se você quer aprender como fazer um jogo de nave no Scratch, este tutorial monta com você um space shooter completo: nave controlada pelas setas, tiro ao apertar espaço, inimigos descendo em posições aleatórias, placar de pontos, vidas e tela de game over. É o tipo de jogo que parece coisa de programador experiente, mas que uma criança consegue montar em uma tarde, de graça, direto no navegador em scratch.mit.edu. E o melhor: no caminho ela aprende clones, variáveis e detecção de colisão, três conceitos que aparecem em qualquer jogo profissional.
Se esta é a sua primeira vez no Scratch, vale abrir antes o meu guia de como criar um jogo no Scratch do zero, onde apresento a interface com calma. Aqui eu explico cada bloco na hora em que ele entra em cena, mas sem parar para tour.
O Plano do Jogo
Antes de arrastar qualquer bloco, entenda a receita. Nosso jogo tem 4 personagens e 2 números importantes:
- A Nave, que anda para os lados na parte de baixo do palco.
- O Tiro, que nasce na nave, sobe e some na borda.
- O Inimigo, que nasce no topo, em posição aleatória, e desce.
- O Palco, com um fundo de espaço e a tela de game over.
- A variável pontos, que sobe quando um tiro acerta um inimigo.
- A variável vidas, que desce quando um inimigo encosta na nave.
O truque central do jogo inteiro são os clones. Tiro e inimigo não são dezenas de sprites: são um sprite molde escondido que fabrica cópias vivas. É assim que jogos de verdade funcionam, e o Scratch deixa isso simples.
Como Fazer um Jogo de Nave no Scratch em 6 Passos
Passo 1: crie a nave e o movimento com as setas
Entre em scratch.mit.edu, clique em Criar e delete o gatinho na lixeirinha do sprite. Clique no Palco, aba Cenários, e escolha um fundo de espaço (procure "stars" ou "galaxy" na biblioteca, ou pinte um fundo preto com pontinhos brancos).
Agora o protagonista: no botão de adicionar sprite, escolha um da biblioteca (procure "rocket" ou "spaceship") ou clique em Pintar e desenhe um triângulo apontando para cima. Não precisa ficar bonito, precisa ficar pronto. Renomeie o sprite para Nave.
Com a Nave selecionada, monte este script:
quando a bandeira verde for clicada
vá para x: 0 y: -140
sempre
se <tecla (seta para a esquerda) pressionada?> então
adicione (-8) a x
se <tecla (seta para a direita) pressionada?> então
adicione (8) a x
O "vá para x: y:" está em Movimento, o "sempre" e o "se então" em Controle, e o "tecla pressionada?" em Sensores. Clique na bandeira verde e teste: a nave já desliza pelos lados de baixo do palco. Rápida demais? Troque o 8 por 6.
Prefere controlar com o mouse? Troque tudo que está dentro do "sempre" por um único bloco: "vá para x: (posição x do mouse) y: -140". A nave segue o mouse só na horizontal. Escolha um dos dois esquemas e siga em frente.
Passo 2: o tiro com clones
Crie um novo sprite com Pintar: um risquinho amarelo em pé, pequeno. Renomeie para Tiro. Ele ganha dois scripts.
O primeiro dispara quando o jogador aperta espaço:
quando a tecla (espaço) for pressionada
crie clone de (mim mesmo)
O segundo diz o que cada clone faz da vida:
quando eu começar como clone
vá para (Nave)
mostre
sempre
adicione (10) a y
se <tocando em (borda)?> então
apague este clone
E um terceiro, bem curtinho, para esconder o molde:
quando a bandeira verde for clicada
esconda
Os blocos de clone estão em Controle. Traduzindo: o sprite Tiro original fica invisível, servindo só de forma. Cada vez que o espaço é apertado, nasce um clone na posição da nave, ele aparece, sobe 10 em 10, e quando toca na borda de cima é apagado. Apagar o clone é importante: o Scratch aguenta no máximo 300 clones ao mesmo tempo, e tiro perdido voando para sempre entope o jogo.
Clique na bandeira verde e metralhe. Já parece jogo.
Passo 3: inimigos descendo em posição aleatória
Adicione mais um sprite: escolha algo de vilão na biblioteca ou pinte um disco voador. Renomeie para Inimigo. Ele também funciona com molde escondido e clones, com dois scripts.
O primeiro é a fábrica:
quando a bandeira verde for clicada
esconda
sempre
crie clone de (mim mesmo)
espere (1.5) segundos
O segundo é a vida de cada inimigo:
quando eu começar como clone
vá para x: (número aleatório entre (-220) e (220)) y: 170
mostre
sempre
adicione (-4) a y
se <tocando em (borda)?> então
apague este clone
O "número aleatório entre" está em Operadores, e é ele que deixa o jogo imprevisível: cada inimigo nasce em um ponto diferente do topo. Teste de novo: agora chove inimigo, e você já desvia por instinto. Falta o principal, que é poder revidar.
Passo 4: colisão de tiro com inimigo, com pontos
Primeiro, o placar: vá em Variáveis, clique em "Criar uma Variável" e chame de pontos. Em algum sprite (pode ser a Nave), zere no começo do jogo:
quando a bandeira verde for clicada
mude (pontos) para (0)
Agora a colisão. No script do clone do Inimigo, dentro do "sempre", adicione mais uma condição:
se <tocando em (Tiro)?> então
mude (pontos) por (1)
apague este clone
Repare na dupla: "mude pontos para 0" zera, "mude pontos por 1" soma. O bloco "tocando em" está em Sensores. Quando um tiro encosta em um inimigo, o inimigo some e o placar sobe. Se quiser que o tiro também suma no impacto (fica mais justo), adicione no script do clone do Tiro, dentro do "sempre": "se tocando em (Inimigo)? então, apague este clone".
Jogue um pouco. Neste ponto o jogo já diverte de verdade, mas não tem risco nenhum. Hora de colocar perigo.
Passo 5: inimigo tocou na nave, perdeu vida
Crie mais uma variável, chamada vidas. No mesmo script em que você zera os pontos, acrescente "mude (vidas) para (3)".
No script do clone do Inimigo, dentro do "sempre", entra a terceira condição:
se <tocando em (Nave)?> então
mude (vidas) por (-1)
apague este clone
Cada inimigo que fura o bloqueio e encosta na nave custa uma vida e desaparece. As duas variáveis aparecem no canto do palco automaticamente, como um painel de fliperama. Você pode arrastá-las pela tela e, com o botão direito, escolher o visual de mostrador grande.
Passo 6: game over
Falta o final. Pinte um novo cenário no Palco escrito GAME OVER, com a ferramenta de texto. Depois, na Nave, adicione um vigia de vidas:
quando a bandeira verde for clicada
sempre
se <(vidas) < (1)> então
transmita (fim de jogo)
E no Palco:
quando eu receber (fim de jogo)
mude para o cenário (game over)
pare (todos)
O "transmita" está em Eventos: é um grito que qualquer sprite pode ouvir. No começo do jogo, lembre de voltar ao cenário de espaço com "quando a bandeira verde for clicada, mude para o cenário (espaço)" no Palco. Pronto: bandeira verde reinicia tudo, três vidas, placar zerado, e o jogo tem começo, meio e fim.
5 Ideias para Deixar o Jogo Mais Legal
Um jogo nunca está terminado, está publicado. Ideias em ordem de dificuldade:
- Sons: na aba Sons, adicione um "laser" ao tiro e uma explosão ao inimigo, tocando com o bloco "toque o som". Muda o jogo por completo em dois minutos.
- Velocidade aumentando: crie uma variável velocidade começando em 4, troque o "adicione (-4) a y" do inimigo por "adicione ((0) - (velocidade)) a y" e, no Palco, some 1 à velocidade a cada 10 segundos. Curva de dificuldade, igual jogo profissional.
- Recorde: uma variável recorde que só é atualizada no game over, se pontos for maior que ela.
- Power-up: um sprite de estrela que desce de vez em quando; se a nave pegar, ganha uma vida ou o tiro fica mais rápido por alguns segundos.
- Chefe: depois de 20 pontos, transmita "chefe" e faça aparecer um inimigo grandão que precisa de 10 tiros. Dica: dê a ele uma variável própria de energia, criada com a opção "apenas para este sprite".
Dica para Pais e Professores
Este projeto rende muito além do jogo. Algumas formas de transformar em aprendizado de verdade:
- Uma peça por vez: resista à tentação de mostrar o script pronto. Deixe a criança montar o passo, clicar na bandeira verde e ver o resultado. O ciclo de testar e ajustar é o hábito mais valioso que este projeto ensina.
- Pergunte "o que acontece se": e se o tiro descesse em vez de subir? E se nascessem dois inimigos por vez? Prever o resultado antes de testar é pensamento computacional puro.
- Matemática disfarçada: o palco é um plano cartesiano de verdade, com x de -240 a 240 e y de -180 a 180. Posição, número negativo e sorteio de intervalo entram sem ninguém perceber que é aula.
- Bug é conteúdo: quando o tiro não sair do lugar certo, não conserte você. Pergunte "em qual script o tiro decide onde nascer?". Debugar é metade da programação.
Em sala de aula, o jogo de nave funciona bem como projeto em duplas: um cuida da nave e do tiro, o outro dos inimigos e do placar, e os dois se encontram na colisão.
E Depois do Jogo de Nave?
Dentro do próprio Scratch, o próximo desafio natural é um jogo de plataforma no Scratch, que introduz gravidade e pulo, dois conceitos novos e um pouco mais difíceis do que tudo que fizemos aqui.
E vale ser honesto sobre o caminho: o Scratch é uma porta de entrada excelente, talvez a melhor que existe, mas ele é a primeira etapa, não a última. Clones, variáveis, eventos e colisões são exatamente os mesmos conceitos usados em engines profissionais, só que lá eles aparecem em código escrito. Quando o Scratch começar a ficar pequeno para as ideias, geralmente na adolescência, o degrau seguinte é uma engine de verdade como a Godot. Se o seu filho ou aluno já está nesse ponto, dê uma olhada no nosso curso de criação de jogos para adolescentes, que faz justamente essa travessia com acompanhamento.
Por agora, o plano é mais simples: abra o scratch.mit.edu, monte o passo 1 e clique na bandeira verde. O resto do jogo nasce um bloco de cada vez.
Perguntas frequentes
Como fazer a nave atirar no Scratch?
Com clones. No sprite do tiro, use o bloco quando a tecla espaço for pressionada com crie clone de mim mesmo. Depois, no script quando eu começar como clone, o tiro vai para a posição da nave, aparece e sobe com adicione 10 a y dentro de um sempre, até tocar na borda e ser apagado com apague este clone.
Como usar clones no Scratch?
Clones são cópias vivas de um sprite. Os três blocos ficam em Controle: crie clone de mim mesmo fabrica a cópia, quando eu começar como clone diz o que cada cópia faz, e apague este clone remove a cópia quando ela não é mais necessária. O sprite original geralmente fica escondido, funcionando só como molde.
Como fazer os inimigos aparecerem no jogo de nave?
O sprite do inimigo fica escondido e roda um laço sempre que cria um clone a cada 1 ou 2 segundos. Cada clone nasce no topo do palco com o x sorteado pelo bloco número aleatório entre -220 e 220, aparece com o bloco mostre e desce até a borda de baixo, onde é apagado.
Como fazer o placar de pontos no Scratch?
Crie uma variável chamada pontos na categoria Variáveis. No começo do jogo, zere com mude pontos para 0. Quando um tiro acertar um inimigo, use mude pontos por 1. O placar aparece automaticamente no canto do palco, e você pode arrastá-lo para onde quiser.
Qual idade consegue fazer um jogo de nave no Scratch?
A partir de uns 8 anos com um adulto por perto ajudando na leitura, e a partir de 10 ou 11 anos de forma bem independente. O passo mais abstrato é o de clones, então vale montar o jogo em etapas e testar com a bandeira verde a cada passo para a criança ver o progresso.


