Voltar para o Blog
Quest Log

Como Fazer um Jogo de Dois Jogadores no Scratch (Passo a Passo)

Tela do Scratch com dois sprites lado a lado correndo em direção a uma linha de chegada

Aprenda a fazer um jogo de dois jogadores no Scratch no mesmo teclado: jogador 1 no WASD, jogador 2 nas setas, corrida com linha de chegada e placar.

Fazer um jogo de dois jogadores no Scratch é mais simples do que parece, e é um dos projetos mais divertidos pra quem está começando: em vez de jogar sozinho contra o computador, a criança desafia o irmão, o colega ou até o pai na mesma tela. O segredo é usar o mesmo teclado pra duas pessoas: o jogador 1 controla o personagem dele com as teclas W, A, S e D, e o jogador 2 usa as setas. Neste guia, vamos montar juntos uma corrida entre dois personagens, com linha de chegada, placar e mensagem de vitória, bloco por bloco.

Trabalho com desenvolvimento de software há mais de 20 anos, boa parte disso com jogos, e posso te garantir: esse projeto pequeno ensina coisas grandes. Controles independentes, detecção de chegada, placar com variáveis e reinício de rodada são ideias que aparecem em praticamente todo jogo, do Scratch ao console. Se você nunca abriu o Scratch antes, vale começar pelo nosso guia de como criar seu primeiro jogo no Scratch do zero, que apresenta a interface com calma. Depois volte aqui, que a corrida te espera.

Como Funciona um Jogo de Dois Jogadores no Scratch

A ideia central cabe em uma frase: dois sprites, cada um obedecendo a um conjunto de teclas diferente do mesmo teclado. O Scratch consegue ler várias teclas ao mesmo tempo, então quando o jogador 1 segura a tecla D e o jogador 2 segura a seta para a direita, os dois personagens andam juntos, cada um no próprio ritmo.

Nosso projeto guiado vai ser uma corrida:

  • Dois sprites, um pra cada jogador, alinhados na largada do lado esquerdo do palco.
  • Um cenário com linha de chegada, uma faixa colorida do lado direito.
  • Controles separados: WASD pro jogador 1, setas pro jogador 2.
  • Detecção de chegada: quem tocar a linha primeiro ganha a rodada.
  • Placar: uma variável de pontos pra cada jogador.
  • Reinício: depois da vitória, os dois voltam pra largada e a disputa recomeça.

Guarde esse desenho na cabeça. Agora vamos montar peça por peça.

Passo 1: Escolhendo os Dois Sprites

Entre em scratch.mit.edu e clique em "Criar". O gato Scratch já vem na tela e vai ser o personagem do jogador 1. Pra criar o personagem do jogador 2, passe o mouse sobre o ícone de sprite no canto inferior direito e clique em "Escolher um Sprite". Escolha alguém bem diferente do gato, tipo um cachorro, um dinossauro ou um robô, pra ninguém confundir quem é quem no meio da corrida.

Dois hábitos que ajudam muito:

  • Renomeie os sprites. Clique em cada um e escreva "Jogador1" e "Jogador2" no campo de nome. Quando o projeto cresce, isso evita confusão.
  • Deixe os dois com tamanho parecido. No campo "Tamanho" de cada sprite, use o mesmo valor (50 costuma ficar bom). Um personagem gigante tocaria a linha de chegada antes só por ser maior, e corrida boa é corrida justa.

Posicione os dois do lado esquerdo do palco, um em cima e outro embaixo, como duas raias de corrida. Arraste o Jogador1 pra parte de cima e o Jogador2 pra parte de baixo.

Passo 2: Criando o Cenário com Linha de Chegada

Agora vamos desenhar a pista. Passe o mouse sobre o ícone de palco no canto inferior direito e escolha "Pintar" pra criar um cenário do zero (ou escolha um cenário pronto e desenhe por cima).

No editor de pintura:

  • Pinte o fundo de uma cor clara, tipo verde grama ou cinza de pista.
  • Selecione a ferramenta de retângulo, escolha uma cor bem chamativa que não aparece em nenhum outro lugar do jogo (um vermelho vivo funciona bem) e desenhe uma faixa vertical fina do lado direito do palco, de cima a baixo. Essa faixa é a linha de chegada.

Um detalhe importante: a cor da linha precisa ser única no cenário e nos sprites. É por ela que o Scratch vai saber quem chegou primeiro, usando o bloco "tocando na cor". Se o personagem tiver a mesma cor no corpo, a detecção dispara na hora errada.

Se quiser caprichar, desenhe também uma linha de largada do lado esquerdo, mas essa é só decoração.

Passo 3: Blocos de Movimento do Jogador 1 (WASD)

Clique no sprite Jogador1. Vamos montar os controles dele com as teclas W, A, S e D, que ficam do lado esquerdo do teclado, longe das setas, justamente pra duas mãos (e duas pessoas) caberem no mesmo teclado sem briga.

Monte esta sequência:

  • Comece com o bloco "quando a bandeira verde for clicada" (categoria Eventos).
  • Logo abaixo, encaixe "vá para x: -200 y: 100" (categoria Movimento). Isso coloca o Jogador1 na largada, na raia de cima, toda vez que o jogo começa.
  • Embaixo, encaixe um bloco "sempre" (categoria Controle).
  • Dentro do "sempre", coloque quatro blocos "se então" (categoria Controle), um embaixo do outro.
  • Na condição de cada "se então", encaixe um bloco "tecla espaço pressionada?" (categoria Sensores) e troque "espaço" pela letra certa: w, a, s e d.
  • Dentro de cada "se então", coloque o movimento: pra tecla w, use "mude y por 10". Pra tecla s, "mude y por -10". Pra tecla d, "mude x por 10". Pra tecla a, "mude x por -10" (todos da categoria Movimento).

Traduzindo: enquanto o jogo roda, o Scratch fica olhando o teclado sem parar. Segurou o D, o personagem anda 10 passos pra direita. O número 10 é a velocidade, e você pode ajustar depois. Numa corrida pura, o que importa mesmo é o D (avançar), mas deixar as quatro direções dá liberdade pra desviar de obstáculos que você pode adicionar mais tarde.

Clique na bandeira verde e teste: o Jogador1 deve andar com WASD e o Jogador2 deve ficar parado. Perfeito, ele ainda não tem cérebro. Vamos dar um agora.

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

Passo 4: Blocos do Jogador 2 (Setas)

Clique no sprite Jogador2. Os blocos são quase os mesmos, e isso é ótimo: montar de novo fixa a lógica na cabeça da criança.

  • "quando a bandeira verde for clicada" (Eventos).
  • "vá para x: -200 y: -100" (Movimento), pra ele largar na raia de baixo, alinhado com o Jogador1.
  • Um bloco "sempre" (Controle) com quatro "se então" dentro.
  • Nas condições, o bloco "tecla pressionada?" com: seta para cima, seta para baixo, seta para a direita e seta para a esquerda.
  • Nos movimentos: seta para cima, "mude y por 10"; seta para baixo, "mude y por -10"; seta para a direita, "mude x por 10"; seta para a esquerda, "mude x por -10".

Repare num ponto que evita dor de cabeça: os scripts de cada jogador moram no próprio sprite. O Jogador1 não sabe nada das setas, o Jogador2 não sabe nada do WASD. No Scratch, cada sprite roda os próprios blocos de forma independente, então um jogador nunca trava o outro. O erro clássico de iniciante é montar tudo num sprite só ou enfiar os dois controles dentro do mesmo bloco "sempre": aí um movimento espera o outro e o jogo engasga. Scripts separados por sprite, sempre.

Teste de novo: agora uma pessoa joga de WASD e a outra de setas, ao mesmo tempo. Se os dois andam juntos, o multiplayer já está vivo.

Passo 5: Linha de Chegada, Pontos e Vitória

Falta o jogo saber quem ganhou. Primeiro, crie o placar. Na categoria Variáveis, clique em "Criar uma Variável" e faça duas, marcando "para todos os sprites": "pontos do jogador 1" e "pontos do jogador 2". Deixe as duas visíveis no palco, que é o placar de graça.

Agora, no sprite Jogador1, monte um segundo script (pode ficar do lado do primeiro, o mesmo sprite pode ter vários):

  • "quando a bandeira verde for clicada" (Eventos).
  • Um bloco "sempre" (Controle).
  • Dentro dele, um "se então" com a condição "tocando na cor vermelha?" (categoria Sensores). Clique na bolinha de cor do bloco e use o conta-gotas pra pegar exatamente o vermelho da sua linha de chegada.
  • Dentro do "se então": "adicione 1 a pontos do jogador 1" (Variáveis), depois "diga Jogador 1 venceu! por 2 segundos" (Aparência) e, por fim, "envie vitória a todos" (Eventos, criando a mensagem nova chamada "vitória").

No sprite Jogador2, monte o mesmo script trocando duas coisas: a variável vira "adicione 1 a pontos do jogador 2" e a fala vira "Jogador 2 venceu!".

O bloco "envie vitória a todos" é o apito do juiz: ele avisa todos os sprites de uma vez que a rodada acabou. Agora vamos usar esse aviso pra reiniciar a corrida.

Em cada um dos dois sprites, adicione um script curto:

  • "quando eu receber vitória" (Eventos).
  • "vá para x: -200 y: 100" no Jogador1, e "vá para x: -200 y: -100" no Jogador2 (Movimento).

Pronto: alguém toca a linha, ganha 1 ponto, a mensagem de vitória aparece e os dois voltam pra largada na mesma hora. O placar acumula entre as rodadas, então dá pra jogar melhor de cinco ou de dez. Se quiser zerar o placar quando o jogo abre, adicione no script da bandeira verde de qualquer sprite os blocos "mude pontos do jogador 1 para 0" e "mude pontos do jogador 2 para 0".

Teste com duas pessoas de verdade. É aqui que o projeto ganha vida: risada, cotovelada e revanche imediata.

Três Variações Rápidas com a Mesma Base

Com os controles de dois jogadores prontos, você reaproveita a mesma ideia em outros jogos quase de graça:

  • Pong de dois jogadores. Cada jogador controla uma raquete: a da esquerda sobe e desce com W e S, a da direita com as setas para cima e para baixo. Uma bola quica com o bloco "se tocando na borda, volte" e você marca ponto quando ela passa da raquete do adversário. É o clássico dos clássicos, e você já sabe montar metade dele.
  • Pega-pega entre os dois. Em vez de correr pra uma linha, um sprite persegue o outro. Use o bloco "tocando em Jogador2?" no perseguidor: encostou, ganhou ponto, e os papéis se invertem na rodada seguinte.
  • Batalha de moedas. Espalhe moedas pelo palco (um sprite de moeda com clones ou várias cópias) e use o bloco "cronômetro" da categoria Sensores: quando o cronômetro passar de 30, acabou, e quem coletou mais moedas ganha. Cada moeda some com "esconda" quando um jogador toca nela, somando 1 na variável de quem pegou.

Se os dois jogadores da sua casa gostam de disputa mais direta, uma evolução natural é montar um jogo de luta no Scratch pra jogar em dupla, que usa exatamente esse esquema de WASD contra setas, com barra de vida no lugar do placar de corrida.

E Jogo de Dois Jogadores Online no Scratch, Dá?

Sendo honesto: dá pra tentar, mas não vale a pena pra quem está começando, e quero te explicar o porquê em vez de só dizer não.

O Scratch tem as chamadas variáveis de nuvem, que guardam números no servidor e podem ser lidas por outras pessoas rodando o mesmo projeto. Parece a peça perfeita pra um jogo online, mas elas foram feitas pra coisas lentas, tipo recorde de pontuação global. Elas atualizam com atraso, têm limite de quantas existem por projeto e de quantas mudanças dá pra fazer por segundo, e só guardam números. Movimento em tempo real precisa de dezenas de atualizações por segundo, e a nuvem do Scratch simplesmente não entrega isso. O resultado é personagem teleportando e partida injogável, e a criança sai frustrada achando que errou algo, quando o limite é da ferramenta.

Jogar no mesmo teclado é o caminho certo pra começar: funciona liso, não depende de internet e ensina exatamente a mesma lógica de controles, colisão e placar que um jogo online usaria. Multiplayer online de verdade envolve servidores e sincronização, e esse é um assunto pra bem mais tarde na jornada, já fora do Scratch.

O Próximo Passo Depois da Corrida

Se a criança montou essa corrida, entendeu controles independentes, sensores, variáveis e mensagens. Isso é muita coisa, e a melhor forma de fixar é variar: pong, pega-pega, batalha de moedas, jogo de luta. Cada variação reaproveita a base e adiciona uma ideia nova.

E quando os projetos começarem a ficar ambiciosos demais pros blocos, esse é um ótimo sinal: significa que ela está pronta pra aprender a programar de verdade, com código escrito, numa engine profissional. Se você quer esse caminho com acompanhamento, aulas pensadas pra idade e projetos guiados do início ao fim, conheça nosso curso de criação de jogos para crianças. A lógica que ela aprendeu arrastando blocos aqui é a mesma que vai usar lá, só que com superpoderes novos.

Agora chame o segundo jogador, aperte a bandeira verde e boa corrida.

Perguntas frequentes

Dá pra jogar em dois no Scratch com um teclado só?

Dá, e é o jeito mais fácil de fazer multiplayer no Scratch. Cada jogador usa um conjunto de teclas diferente: o jogador 1 fica com W, A, S e D, e o jogador 2 fica com as setas. Como o Scratch lê várias teclas ao mesmo tempo, os dois conseguem se mover juntos sem atrapalhar um ao outro.

Dá pra fazer jogo de dois jogadores online no Scratch?

Na prática, não vale a pena pra começar. As variáveis de nuvem do Scratch atualizam devagar e têm limites de uso, então não servem pra movimento em tempo real. O caminho certo pra criança é o multiplayer local, com os dois jogadores no mesmo teclado, que funciona liso e ensina a mesma lógica.

Por que um jogador trava quando o outro se mexe?

Quase sempre é porque os blocos dos dois jogadores foram montados no mesmo sprite ou dentro do mesmo bloco sempre. A regra de ouro é: cada sprite cuida só dos próprios scripts. Jogador 1 tem os blocos dele no sprite dele, jogador 2 tem os blocos dele no sprite dele, e cada um roda de forma independente.

Que idade a criança precisa ter pra fazer esse projeto?

A partir de uns 8 anos a maioria consegue montar a corrida com um adulto por perto, e a partir de uns 10 costuma conseguir sozinha seguindo o passo a passo. O projeto usa só blocos básicos: eventos, movimento, sensores e variáveis, sem nada avançado.

Como faço a corrida ficar justa pros dois jogadores?

Use o mesmo número nos blocos de movimento dos dois sprites, por exemplo mude x por 10 pra cada aperto de tecla, e posicione os dois na mesma linha de largada, só mudando o y de cada um. Se um personagem for maior que o outro, deixe os dois com tamanho parecido pra ninguém tocar a linha de chegada antes por causa do desenho.

Depois do jogo de dois jogadores, qual é o próximo projeto?

Vale variar em cima da mesma base: um pong de dois jogadores, um pega-pega entre os dois sprites ou um jogo de luta simples. Quando os projetos no Scratch começarem a ficar apertados pra ideia da criança, o passo seguinte é aprender programação de verdade em uma engine como a Godot.