Capítulo 16: Movimentação em Coordenadas e Roteirização

🎯 Objetivo da Aula

Nos capítulos anteriores, vimos como posicionar atores em coordenadas fixas. No entanto, um caminhão real de 40 toneladas não se “teletransporta” instantaneamente da portaria para a doca de descarga: ele se desloca suavemente pelas vias internas do pátio, respeita curvas e realiza manobras controladas. No Scratch, criamos esse movimento fluido através do bloco deslize por [segundos] até x: y:.

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

  1. Compreender a diferença entre Salto Instantâneo (vá para) e Movimento Suave Interpolado (deslize por).
  2. Controlar a orientação espacial do veículo com o bloco 🔵 aponte para a direção (graus).
  3. Configurar o Estilo de Rotação do ator para evitar que o caminhão fique de cabeça para baixo nas manobras.
  4. Construir o Roteirizador de Tráfego Interno por Pontos de Passagem (Waypoints) da FastLog.

📥 Material de Apoio e Roteiro de Blocos:


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

Situação: A equipe de segurança patrimonial da FastLog definiu uma via de mão única obrigatória para todas as carretas que entram no terminal de cargas. O percurso é composto por 4 pontos de passagem (Waypoints):

  1. Waypoint 1 (Portaria): $X: -200, Y: -120$ apontando para a direita ($90^\circ$).
  2. Waypoint 2 (Balança Rodoviária): $X: -30, Y: -120$ (onde para por 2 segundos para pesagem).
  3. Waypoint 3 (Curva de Acesso): $X: -30, Y: 40$ (onde gira para cima, $0^\circ$).
  4. Waypoint 4 (Doca 02): $X: 140, Y: 40$ (estacionamento final).

Missão: Programar a navegação automatizada da carreta por esses 4 pontos, garantindo velocidade realista e orientação correta da cabine.


🧠 Fundamentos: Como Controlar o Movimento no Scratch?

1. vá para vs deslize por

BlocoComportamento VisualAplicação Prática
[vá para x: (X) y: (Y)]Salto de 0 milissegundos.Reinicialização de cena ou sumiço de ator.
[deslize por (2) segs até x: y:]Deslocamento suave, calculando automaticamente a velocidade.Movimento realista de veículos e esteiras.

2. A Rosa dos Ventos do Scratch (Direção em Graus)

No Scratch, a direção dos atores é medida em graus:

graph TD
    subgraph Direcoes_Scratch ["Direção Espacial no Scratch 3.0"]
        Cima["0° = Norte (Para Cima)"]
        Dir["90° = Leste (Para a Direita - Padrão)"]
        Baixo["180° = Sul (Para Baixo)"]
        Esq["-90° = Oeste (Para a Esquerda)"]
    end
    
    style Cima fill:#2980b9,stroke:#fff,color:#fff
    style Dir fill:#27ae60,stroke:#fff,color:#fff
    style Baixo fill:#e67e22,stroke:#fff,color:#fff
    style Esq fill:#c0392b,stroke:#fff,color:#fff

3. O Estilo de Rotação (Rotation Style)

Evite o Caminhão de Cabeça para Baixo!
Quando você manda o caminhão apontar para $-90^\circ$ (esquerda), o Scratch pode girar a imagem de cabeça para baixo. Para corrigir isso:
Use o bloco 🔵 fixe o estilo de rotação para [esquerda-direita v]. Dessa forma, o veículo apenas espelha a lateral sem virar as rodas para cima!


📖 Exemplo Guiado: Roteirização Completa de Entrada na Doca

Passo a Passo no Scratch 3.0:

  1. Posicione o ator Caminhao e adicione o script:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
quando clicar em 🏁
// 1. Configuração inicial do veículo
fixe o estilo de rotação para [esquerda-direita v]
vá para x: (-200) y: (-120) // Ponto 1: Guarita
aponte para a direção (90) // Virado para a direita
diga [Iniciando rota interna...] por (1.5) segundos

// 2. Deslocamento até a Balança (2 segundos)
deslize por (2) segs até x: (-30) y: (-120)
diga [Pesando carga... Aguarde 2 segundos.] por (2) segundos
toque o som [Bell v]

// 3. Manobra de subida para a via central
deslize por (1.5) segs até x: (-30) y: (40)

// 4. Deslocamento final até a Doca de Descarga
deslize por (2) segs até x: (140) y: (40)
toque o som [Car Brake v] até o fim
diga [Veículo estacionado na doca com segurança!] por (3) segundos

🛠️ Prática Obrigatória 1: Manobra de Ré com Efeito Sonoro

O Desafio:

Para descarregar, o caminhão precisa dar marcha à ré para encaixar na doca:

  1. Comece em $x: 50, y: 0$ apontando para a direita ($90^\circ$).
  2. Faça o caminhão emitir o bipe de ré: toque o som [Pip v] ou som intermitente.
  3. Deslize lentamente por 3 segundos para trás até $x: -80, y: 0$.
  4. Avise na tela: [Atracamento traseiro finalizado com sucesso!].

🛠️ Prática Obrigatória 2: Controle de Velocidade Dinâmica

O Desafio:

Crie a variável Velocidade_Transito (tempo em segundos do trajeto):

  1. Pergunte ao operador: [Qual a velocidade da carreta? (1-Rápido [1 seg] | 2-Lento [4 seg]):].
  2. Se 1: mude [Tempo_Viagem v] para (1).
  3. Se 2: mude [Tempo_Viagem v] para (4).
  4. Use o valor da variável dentro do próprio bloco: deslize por (Tempo_Viagem) segs até x: (160) y: (50).

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo do projeto com o nome: Atividade_16_SeuNome_SeuSobrenome.sb3.
  2. Observe a fluidez da carreta deslizando pelas vias sem saltos bruscos.
  3. No Microsoft Teams, envie na tarefa “Scratch Cap 16 - Roteirização por Coordenadas”.
  4. Clique em Entregar (Turn In).

💡 Checkpoint de Lógica & Engenharia de Software

Você acabou de aplicar o conceito de Interpolação Linear (LERP - Linear Interpolation) e Algoritmos de Roteamento de Frotas (VRP - Vehicle Routing Problem). Motores de jogos (Unreal Engine e Unity) e sistemas de controle de veículos autônomos da Tesla utilizam esse mesmo cálculo matemático vetorial para calcular a trajetória de curva entre waypoints.


🔥 Desafio de Fixação: Percurso em Circuito Fechado (Patrulha)

Faça uma viatura de segurança do pátio patrulhar continuamente os 4 cantos do pátio dentro de um laço sempre, utilizando 4 blocos de deslize sucessivos.


🔑 Gabarito de Código (Blocos do Scratch)

Prática 1:

1
2
3
4
5
6
7
8
9
[Ator: Caminhao]
quando clicar em 🏁
vá para x: (50) y: (0)
aponte para a direção (90)
diga [Iniciando marcha à ré na doca...] por (1.5) segundos
toque o som [Pip v]
deslize por (3) segs até x: (-80) y: (0)
toque o som [Car Brake v] até o fim
diga [Atracamento traseiro finalizado com sucesso!] por (3) segundos

Prática 2:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[Ator: Caminhao]
quando clicar em 🏁
pergunte [Qual a velocidade da carreta? (1-Rápido [1 seg] | 2-Lento [4 seg]):] e espere
se <(resposta) = (1)> então
    mude [Tempo_Viagem v] para (1)
senão
    mude [Tempo_Viagem v] para (4)
fim

deslize por (Tempo_Viagem) segs até x: (160) y: (50)
diga [Trajeto concluído no tempo estipulado!] por (2) segundos

Desafio:

1
2
3
4
5
6
7
8
9
[Ator: Viatura_Segurança]
quando clicar em 🏁
fixe o estilo de rotação para [não gire v]
sempre
    deslize por (2.5) segs até x: (-180) y: (-120)
    deslize por (2.5) segs até x: (-180) y: (120)
    deslize por (2.5) segs até x: (180) y: (120)
    deslize por (2.5) segs até x: (180) y: (-120)
fim

📥 Download do Roteiro Completo desta Aula:
Baixe o arquivo consolidado Capitulo_16.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. Qual é a diferença de comportamento visual entre o bloco vá para x: y: e o bloco deslize por (segundos) segs até x: y:?
  2. No Scratch, a quais direções (Norte, Sul, Leste ou Oeste) correspondem os ângulos 0°, 90°, 180° e -90°?
  3. Qual bloco deve ser usado para impedir que o caminhão fique de cabeça para baixo quando aponta para a esquerda?
  4. No Exemplo Guiado, em quantos segundos o caminhão desliza da Guarita até a Balança Rodoviária?
  5. No Exemplo Guiado, qual som é tocado ao chegar na Balança, e qual som é tocado ao estacionar na Doca final?
  6. Na Prática Obrigatória 1, em qual coordenada (x, y) o caminhão começa a manobra de ré, e para qual coordenada ele desliza, em quantos segundos?
  7. Na Prática Obrigatória 2, qual é o nome da variável criada para controlar o tempo de trajeto, e quais dois valores numéricos ela pode assumir dependendo da resposta do operador?
  8. Segundo o Checkpoint de Lógica & Engenharia de Software, a quais dois conceitos técnicos (um de cálculo matemático, outro de roteamento de veículos) o movimento por deslize é comparado?
  9. Segundo o Cenário Prático, quantos Waypoints compõem o percurso da via de mão única definida pela segurança patrimonial, e em qual deles a carreta para por 2 segundos para pesagem?
  10. Qual bloco da categoria Movimento é usado no Exemplo Guiado, logo após a chegada na Guarita, para orientar o caminhão a 90 graus?