Pular para o conteúdo
Jogos Digitais
Nesta página
  1. Objetivos de aprendizagem
  2. Pré-requisitos
  3. Materiais
  4. Conceitos
  5. Exemplos
  6. Tutorial passo a passo
  7. O código completo
  8. Explicação do código
  9. Resultado esperado
  10. Problemas comuns
  11. Exercício guiado
  12. Desafio individual
  13. Desafio avançado (opcional)
  14. Critérios de avaliação
  15. Checklist de conclusão
  16. Extensão

Módulo 1 · Aula 1.2 · Eventos e mensagens

Carga horáriaDificuldadeFerramentaCompetências
8 h/a⭐⭐ScratchC1, C2

Objetivos de aprendizagem

  1. Explicar o que é um evento e citar cinco eventos do Scratch.
  2. Usar "transmita" e "quando eu receber" para um ator avisar os outros.
  3. Usar "espere até que" para esperar uma condição.

Pré-requisitos

Aula 1.1.

Materiais

Computador; projeto 1-2-largada.sb3 (para o professor).

Conceitos

  • Evento: algo que acontece e dispara um roteiro (bandeira clicada, tecla apertada, ator clicado, mensagem recebida).
  • Mensagem: um aviso que um ator manda para todos os atores ao mesmo tempo. Quem tiver "quando eu receber [aquela mensagem]" começa a agir. É como o apito do juiz: todos os jogadores escutam.
  • "transmita [mensagem]": envia a mensagem e segue em frente sem esperar.
  • "transmita [mensagem] e espere": envia e só continua depois que todos que receberam terminarem.
  • "espere até que < >": para o roteiro até a condição ficar verdadeira.
  • Paralelismo: dois atores com "quando eu receber [largada]" correm ao mesmo tempo.

Exemplos

  • Em um jogo de luta, quando a vida chega a zero, o personagem transmite "fim de luta" e o placar, a música e o cenário reagem.
  • Em uma corrida, o juiz transmite "largada" e todos os carros saem juntos.

Tutorial passo a passo

Parte A. Os atores (30 min)

  1. Projeto novo, salvo como largada-v1.sb3.
  2. Renomeie o gato para Gato (tamanho 50).
  3. Adicione da biblioteca (Selecione um Ator): Hedgehog (renomeie para Ouriço, tamanho 50) e Robot (renomeie para Juiz, tamanho 60).
  4. Crie a variável vencedor (Variáveis > Criar uma Variável, para todos os atores).

Parte B. O juiz (60 min)

  1. No Juiz, monte o roteiro do juiz (código abaixo).
  2. Para criar a mensagem: arraste "transmita [mensagem 1]", clique na setinha e escolha Nova mensagem. Digite largada e clique em OK.
  3. O bloco "espere até que" fica em Controle; o "não < >" e o "( ) = ( )" em Operadores.

Parte C. Os corredores (60 min)

  1. No Gato, monte os dois roteiros do corredor (código abaixo). Repare: o segundo roteiro começa com "quando eu receber [largada]" (em Eventos).
  2. Para não montar tudo de novo no Ouriço: arraste os dois roteiros do Gato até a miniatura do Ouriço na lista de atores e solte. O Scratch copia os blocos.
  3. No Ouriço, troque o y do "vá para" para -120 e o texto "Gato" do "mude vencedor para" por Ouriço.
  4. Rode várias vezes. O vencedor muda, porque cada passo é sorteado.

O código completo

Ator Juiz:

quando ⚑ for clicado
mude [vencedor] para (ninguém)
espere (0.5) seg
diga (3) por (1) segundos
diga (2) por (1) segundos
diga (1) por (1) segundos
diga (Já!)
transmita [largada]
espere até que <não <(vencedor) = (ninguém)>>
diga (junte (Vencedor: ) com (vencedor))

Ator Gato (o Ouriço é igual, com y = -120 e o nome Ouriço):

quando ⚑ for clicado
vá para x: (-200) y: (-20)

quando eu receber [largada]
repita até que <(posição x) > (200)>
    adicione (número aleatório entre (1) e (10)) a x
fim
se <(vencedor) = (ninguém)> então
    mude [vencedor] para (Gato)
    diga (Ganhei!) por (2) segundos
fim

Projeto pronto: ../projetos/1-2-largada/1-2-largada.sb3.

Explicação do código

ParteO que faz
mude vencedor para ninguémprepara a corrida. "ninguém" significa "ainda não chegou ninguém"
espere 0.5 segdá tempo de os corredores voltarem para a largada
transmita largadao apito: os dois corredores começam juntos
espere até que não (vencedor = ninguém)o juiz fica parado até alguém chegar
repita até que posição x > 200o corredor anda até passar da linha de chegada
se vencedor = ninguémsó o primeiro a chegar grava o nome. O segundo encontra o nome já preenchido e não muda nada

Resultado esperado

O juiz conta 3, 2, 1, diz "Já!", os dois saem juntos com velocidades que variam, o primeiro a passar de x = 200 diz "Ganhei!" e o juiz anuncia "Vencedor: Gato" ou "Vencedor: Ouriço". Testado: ninguém sai antes do "Já!", o vencedor é sempre um dos dois e os dois cruzam a linha.

Problemas comuns

SintomaCausaSolução
Os corredores saem antes do "Já!"usaram "quando ⚑ for clicado" no roteiro da corridatrocar por "quando eu receber [largada]"
Só um corredor andao outro está esperando outra mensagem (nome diferente)conferir que os dois usam largada
O vencedor anunciado é o segundofalta o "se vencedor = ninguém"o segundo sobrescreve o nome do primeiro
O juiz anuncia na hora, antes de alguém chegarfalta o "não" em volta do "="conferir "espere até que <não <(vencedor) = (ninguém)>>"
O juiz não anuncia nuncao texto "ninguém" está escrito diferente nos blocos (ex.: "ninguem" sem acento)usar exatamente o mesmo texto. O "=" do Scratch ignora maiúsculas, mas não ignora acentos nem espaços

Exercício guiado

Acrescente um terceiro corredor (o Papagaio, Parrot) usando a técnica de arrastar os roteiros para a miniatura.

Desafio individual

Quando o juiz anunciar o vencedor, ele deve transmitir a mensagem pódio. Ao receber pódio, o vencedor dá um pulo (dica: "adicione 30 a y", "espere 0.2", "adicione -30 a y"). Só o vencedor! Dica: dentro de "quando eu receber [pódio]", use "se vencedor = Gato".

Desafio avançado (opcional)

Crie um semáforo com um ator de três fantasias (vermelho, amarelo, verde) desenhadas na aba Fantasias. O semáforo troca de cor sozinho e transmite largada só quando fica verde.

Critérios de avaliação

  • Corredores só saem com a mensagem.
  • O vencedor anunciado é sempre o primeiro a chegar.
  • O aluno explica a diferença entre "transmita" e "transmita e espere".

Checklist de conclusão

Extensão

Liste 5 situações de um jogo que você conhece em que um personagem "avisa" os outros (mensagem). Quem transmite e quem recebe?