Módulo 4 · Aula 4.4 · O calango: inimigo que patrulha
| Carga horária | Dificuldade | Ferramenta | Competências |
|---|---|---|---|
| 10 h/a | ⭐⭐⭐ | GDevelop 5 (gdevelop.io) | C1, C2 |
Objetivos de aprendizagem
- Criar uma variável de objeto e explicar a diferença para variável de cena.
- Fazer um inimigo andar para um lado e para o outro entre dois marcadores.
- Usar marcadores invisíveis para controlar o comportamento dos inimigos.
- Fazer vários inimigos funcionarem com os mesmos eventos.
Pré-requisitos
Aulas 4.1 a 4.3. Aula 3.7 (forças).
Materiais
Computador com o GDevelop; calango1.png, calango2.png, limite.png (imagem transparente).
Conceitos
Variável de objeto. Cada instância tem a sua. Dois calangos, cada um com a sua Direcao: um pode ir para a direita enquanto o outro vai para a esquerda. Variável de cena seria uma só para todos, e os dois andariam sempre juntos.
Direção como número. Direcao = 1 (direita) ou −1 (esquerda). A velocidade é 70 * Calango.Variable(Direcao): dá +70 ou −70. Uma conta só para os dois sentidos.
Marcadores de limite. Dois objetos invisíveis: LimiteEsquerdo manda o calango para a direita (Direcao = 1) e LimiteDireito manda para a esquerda (−1). São dois objetos diferentes de propósito: se fosse um só "Limite" que inverte a direção, o calango podia ficar trocando de direção sem parar enquanto encostado nele.
Invisível, mas com colisão. limite.png é totalmente transparente. A colisão usa a caixa da imagem, então funciona mesmo sem nada visível.
Exemplos
| Jogo | Patrulha |
|---|---|
| Trilha da Serra | calango entre dois marcadores |
| jogos de plataforma clássicos | inimigo vira ao bater numa parede ou na beira |
| jogos de furtividade | guarda segue uma rota de pontos |
Tutorial passo a passo
Parte A. O calango (40 min)
- Objeto
Calangocom uma animação de 2 quadros (0,2 s, repetindo). - Aba Variáveis do objeto: crie
Direcao, número, valor −1. - Objetos
LimiteEsquerdoeLimiteDireito, os dois comlimite.png. - Coloque um calango no chão e um limite de cada lado (por exemplo, x = 820 e x = 1300).
Parte B. Andar (60 min)
- Evento sem condição. Ação Adicionar uma força no Calango: X =
70 * Calango.Variable(Direcao), Y =0, instantânea. - Visualizar. O calango anda para a esquerda e sai pelo limite.
Parte C. Virar (60 min)
- Evento: Colisão Calango com LimiteEsquerdo → Alterar valor da variável do objeto
Direcaodo Calango "definir como"1. - Evento: Colisão Calango com LimiteDireito →
Direcao=-1. - Eventos de virar o desenho: Valor da variável do objeto
Direcao< 0 → inverter sim; > 0 → não. - Visualizar.
Parte D. Dois calangos (40 min)
- Coloque um segundo calango com outros dois limites em outro trecho. Sem criar nenhum evento novo, os dois patrulham. Explique no diário por quê.
Imagens
- Captura real, eventos da patrulha ("Adicionar ao Calango instantânea uma força de 70 * Calango.Variable(Direcao) p/s no eixo X e 0 p/s no eixo Y", "A variável Direcao de Calango < 0"):
recursos/imagens/gdevelop/captura-trilha-eventos-2.png
e -3.png.
Indicação da interface
| Item | Onde fica |
|---|---|
| Aba Variáveis do objeto | janela de edição do objeto, terceira aba |
| Alterar valor da variável do objeto | ações do objeto Calango (pesquisar "variável do objeto") |
| Valor da variável do objeto | condições do objeto Calango |
| Adicionar uma força | ações do objeto, grupo de movimento com forças |
O código completo
Comentário: Calango patrulha: anda na direção da variável Direcao e vira ao tocar um limite.
(sem condição) → Adicionar ao Calango instantânea uma força de
70 * Calango.Variable(Direcao) p/s no eixo X e 0 p/s no eixo Y
Calango está em colisão com LimiteEsquerdo → Alterar a variável Direcao de Calango: definir como 1
Calango está em colisão com LimiteDireito → Alterar a variável Direcao de Calango: definir como -1
A variável Direcao de Calango < 0 → Virar horizontalmente Calango: sim
A variável Direcao de Calango > 0 → Virar horizontalmente Calango: nãoExplicação do código
- Cada evento vale para todos os calangos, mas a seleção de instâncias (Aula 3.4) faz cada colisão mudar só o calango que encostou.
- O desenho do calango olha para a direita. Por isso "virar = sim" quando vai para a esquerda.
Resultado esperado (testado)
Teste automático: com Direcao = 1, o calango andou para a direita (mais de 10 px em 0,4 s); ao chegar no limite direito, Direcao virou −1 e o desenho foi invertido.
Problemas comuns
| Sintoma | Causa | Solução |
|---|---|---|
| Os dois calangos andam iguais | Direcao criada como variável de cena | criar na aba Variáveis do objeto |
| O calango treme no limite | um limite só que inverte a direção | usar dois objetos de limite |
| O calango cai do mundo | colocou Personagem de plataforma nele sem chão | tirar, ou colocar chão |
| Os limites aparecem | imagem não transparente | usar limite.png |
Exercício guiado
Calango em x = 1000 com Direcao = −1 e limites em 820 e 1300. Em quanto tempo ele chega ao limite esquerdo? (Resposta: a borda esquerda dele precisa andar até encostar no limite, cerca de 160 px, a 70 px/s: uns 2,3 s.)
Desafio individual
Faça o calango ficar mais rápido quando o jogador estiver a menos de 200 px dele (ele "percebe" o jogador).
Desafio avançado (opcional)
Em vez de limites, faça o calango virar quando chegar na beira de uma plataforma. Pesquise a condição de distância ou use um objeto "sensor" preso à frente dele.
Critérios de avaliação
- Dois calangos patrulhando com os mesmos eventos.
- Explicação escrita da diferença entre variável de objeto e de cena.
Checklist de conclusão
Extensão
Observe um animal de verdade (formiga, galinha, calango) por 2 minutos e descreva o "algoritmo" de movimento dele como eventos.