Capítulo 03: Eventos e Gatilhos (O Padrão Event-Driven)

🎯 Objetivo da Aula

Programas de computador modernos não rodam apenas de forma linear do início ao fim: eles ficam aguardando Eventos acontecerem (um clique do mouse, uma tecla pressionada pelo operador ou o acionamento de um alarme). Esse paradigma é conhecido na Engenharia de Software como Arquitetura Orientada a Eventos (Event-Driven Architecture).

Ao final desta aula, você será capaz de:

  1. Compreender o que é um Evento e como ele funciona como gatilho de execução no Scratch.
  2. Dominar os blocos da categoria 🟡 Eventos:
    • quando clicar em 🏁 (evento principal de inicialização).
    • quando a tecla [tecla] for pressionada (atalhos de teclado).
    • quando este ator for clicado (botões e interfaces interativas).
    • quando o cenário mudar para [cenário] (troca de telas do sistema).
  3. Construir um Painel de Controle Interativo de Pátio com Múltiplos Gatilhos.

📥 Material de Apoio e Roteiro de Blocos:


🏢 O Cenário Prático (Seu Desafio)

Situação: A torre de controle do Centro de Distribuição da FastLog precisa de um painel de comando para que o operador da guarita consiga acionar funções imediatas sem precisar digitar códigos:

  • Pressionar a tecla [C]: Abrir ou fechar a cancela de veículos.
  • Pressionar a tecla [E]: Acionar o protocolo de emergência (sirene e alerta visual vermelho).
  • Clicar diretamente no ator Botão_Luzes: Ligar e desligar a iluminação noturna das docas.

Missão: Programar a central de comando da portaria conectando cada um desses gatilhos às suas respectivas ações visuais e sonoras.


🧠 Fundamentos: A Arquitetura Orientada a Eventos

1. O que é um Evento (Trigger)?

Um Evento é qualquer ocorrência externa que é percebida pelo computador e dispara um bloco de instruções correspondente:

graph TD
    subgraph Gatilhos_Disponiveis ["Gatilhos no Scratch (🟡 Eventos)"]
        E1["quando clicar em 🏁"]
        E2["quando a tecla [espaço] for pressionada"]
        E3["quando este ator for clicado"]
    end
    
    E1 --> A1["Inicializa Variáveis e Posições Iniciais"]
    E2 --> A2["Abre/Fecha a Cancela de Acesso"]
    E3 --> A3["Dispara Efeito Sonoro e Altera Fantasia"]
    
    style E1 fill:#f1c40f,stroke:#fff,color:#000
    style E2 fill:#f1c40f,stroke:#fff,color:#000
    style E3 fill:#f1c40f,stroke:#fff,color:#000
    style A1 fill:#2980b9,stroke:#fff,color:#fff
    style A2 fill:#27ae60,stroke:#fff,color:#fff
    style A3 fill:#8e44ad,stroke:#fff,color:#fff

2. Por que o Scratch não roda scripts sem Evento?

Todo script no Scratch precisa de um Bloco de Chapéu (aqueles com formato arredondado no topo). Se você deixar um bloco solto na área de trabalho sem um evento conectado, ele nunca será executado, pois o computador não sabe quando ele deve começar!


3. Prévia Rápida: Decisão, Comparação e Fantasia Atual

O Exemplo Guiado e a Prática 1 deste capítulo já combinam eventos com um pouco de lógica de decisão. Para acompanhar sem susto: (a) o bloco 🟠 se <condição> então ... senão ... permite que o script siga por dois caminhos alternativos dependendo se a condição é verdadeira ou falsa — usaremos aqui a versão simples, e ela será estudada a fundo nos Capítulos 05 e 06; (b) o operador (...) = (...) (categoria 🟢 Operadores) compara dois valores e resulta em verdadeiro se forem iguais, ou falso caso contrário; (c) o bloco (fantasia [nome v]) (categoria 🟣 Aparência) é um reporter que devolve o nome da fantasia/costume atual do ator — útil para descobrir em que “estado visual” o ator está antes de decidir o que fazer.


4. Principais Eventos do Scratch 3.0

Bloco de EventoQuando é disparado?Aplicação Corporativa / Prática
quando clicar em 🏁No início da simulação.Inicializar variáveis, resetar placares e posições.
quando a tecla [X] for pressionadaAo digitar no teclado físico.Atalhos rápidos de operação e controle de manobras.
quando este ator for clicadoAo clicar com o mouse no ator.Botões de tela, ícones e painéis de toque (Touchscreen).
quando o cenário mudar para [...]Ao alterar o fundo do palco.Troca de tela (ex: Tela de Login ➔ Tela Principal).

📖 Exemplo Guiado: Painel de Controle de Iluminação de Doca

Passo a Passo no Scratch 3.0:

  1. Crie um novo ator desenhando uma lâmpada ou botão retangular e nomeie como Botao_Luz_Doca.
  2. Desenhe duas fantasias para esse ator:
    • Fantasia 1: Luz_Apagada (botão cinza escuro).
    • Fantasia 2: Luz_Acesa (botão amarelo brilhante).
  3. Conecte dois scripts independentes a esse ator:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// Script 1: Inicialização do Sistema
quando clicar em 🏁
mude para a fantasia [Luz_Apagada v]
vá para x: (180) y: (130)

// Script 2: Resposta ao Clique do Operador
quando este ator for clicado
se <(fantasia [nome v]) = [Luz_Apagada]> então
    mude para a fantasia [Luz_Acesa v]
    diga [Iluminação das Docas: LIGADA] por (2) segundos
senão
    mude para a fantasia [Luz_Apagada v]
    diga [Iluminação das Docas: DESLIGADA] por (2) segundos
fim

🛠️ Prática Obrigatória 1: Tecla de Atalho para o Portão Central

O Desafio:

Crie um ator chamado Cancela_Automatica com duas fantasias:

  • Fechada (barra na horizontal).
  • Aberta (barra na vertical ou inclinada $90^\circ$). Programe os seguintes eventos:
  1. quando clicar em 🏁: Deve começar sempre na fantasia Fechada na posição $x: (-50), y: (-80)$.
  2. quando a tecla [c v] for pressionada: Deve alternar a fantasia da cancela. Se estiver fechada, mude para aberta e toque um som; se estiver aberta, mude para fechada.

🛠️ Prática Obrigatória 2: O Alarme de Emergência da Guarita

Crie um ator chamado Sirene_Emergencia. Programe o evento:

  1. quando a tecla [e v] for pressionada:
    • Mude o efeito visual para vermelho piscante: mude o efeito [olho de peixe v] para (50).
    • Toque o som de alarme: toque o som [Alert v] até o fim.
    • Exiba a mensagem de segurança: [EVACUAÇÃO: Protocolo de emergência do armazém acionado!] por 3 segundos.
    • Volte os efeitos visuais para zero com limpe os efeitos gráficos.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo do projeto com o nome: Atividade_03_SeuNome_SeuSobrenome.sb3.
  2. Teste os atalhos de teclado [C] e [E] e os cliques nos botões.
  3. No Microsoft Teams, envie na tarefa “Scratch Cap 03 - Eventos e Gatilhos”.
  4. Clique em Entregar (Turn In).

💡 Checkpoint de Lógica & Engenharia de Software

Você acabou de aplicar o conceito de Programação Reativa e Handlers de Interface (UI Events). Aplicativos mobile (como apps de motoristas da Uber e sistemas de portaria automatizada) dependem inteiramente de ouvintes de eventos (Listeners) para reagir a toques e sensores.


🔥 Desafio de Fixação: Controle de Câmeras de Vigilância

Crie três cenários no palco: Camera_Portaria, Camera_Galpao e Camera_Patio. Crie três eventos de teclado:

  • Tecla [1]: mude para o cenário [Camera_Portaria v].
  • Tecla [2]: mude para o cenário [Camera_Galpao v].
  • Tecla [3]: mude para o cenário [Camera_Patio v]. Teste a alternância do circuito fechado de TV (CFTV) da empresa!

🔑 Gabarito de Código (Blocos do Scratch)

Prática 1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[Ator: Cancela_Automatica]
quando clicar em 🏁
vá para x: (-50) y: (-80)
mude para a fantasia [Fechada v]

quando a tecla [c v] for pressionada
se <(fantasia [nome v]) = [Fechada]> então
    mude para a fantasia [Aberta v]
    toque o som [Door Creak v]
    diga [Cancela Aberta!] por (1.5) segundos
senão
    mude para a fantasia [Fechada v]
    toque o som [Door Slam v]
    diga [Cancela Fechada!] por (1.5) segundos
fim

Prática 2:

1
2
3
4
5
6
[Ator: Sirene_Emergencia]
quando a tecla [e v] for pressionada
mude o efeito [olho de peixe v] para (50)
toque o som [Alert v] até o fim
diga [EVACUAÇÃO: Protocolo de emergência do armazém acionado!] por (3) segundos
limpe os efeitos gráficos

Desafio:

1
2
3
4
5
6
7
8
9
[Palco]
quando a tecla [1 v] for pressionada
mude para o cenário [Camera_Portaria v]

quando a tecla [2 v] for pressionada
mude para o cenário [Camera_Galpao v]

quando a tecla [3 v] for pressionada
mude para o cenário [Camera_Patio v]

📥 Download do Roteiro Completo desta Aula:
Baixe o arquivo consolidado Capitulo_03.txt ou o pacote compactado (.zip) com os scripts e desafios da aula.


📝 Atividade Extra: Questionário de Fixação (Caderno)

Instruções: Responda no caderno, de próprio punho, as 10 perguntas abaixo com base no que foi estudado neste capítulo. Ao concluir, leve o caderno até o professor para correção e visto.

  1. O que é um Evento (Trigger) no Scratch, segundo o capítulo?
  2. Por que um bloco solto na área de código, sem um Bloco de Chapéu conectado acima dele, nunca é executado?
  3. Cite três dos quatro blocos de evento apresentados na tabela “Principais Eventos do Scratch 3.0”.
  4. No Exemplo Guiado, quais são os nomes das duas fantasias criadas para o ator Botao_Luz_Doca?
  5. No Exemplo Guiado, ao clicar no ator Botao_Luz_Doca quando ele está com a fantasia Luz_Apagada, que mensagem ele exibe?
  6. Na Prática Obrigatória 1, qual tecla deve ser pressionada para alternar a fantasia da Cancela_Automatica entre Fechada e Aberta?
  7. Na Prática Obrigatória 1, em que posição (x, y) a Cancela_Automatica deve começar ao clicar na bandeira verde?
  8. Na Prática Obrigatória 2, qual tecla aciona o ator Sirene_Emergencia?
  9. Segundo o Checkpoint, que tipo de aplicativos reais foram citados como exemplo de dependência de “ouvintes de eventos” (Listeners)?
  10. Segundo a tabela de eventos do capítulo, qual bloco é disparado ao alterar o fundo do Palco (usado para trocar de tela)?