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. Imagens
  8. Indicação da interface
  9. O código completo
  10. Explicação do código
  11. Resultado esperado (testado)
  12. Problemas comuns
  13. Exercício guiado
  14. Desafio individual
  15. Desafio avançado (opcional)
  16. Critérios de avaliação
  17. Checklist de conclusão
  18. Extensão

Módulo 4 · Aula 4.5 · Dano, invencibilidade e buracos

Carga horáriaDificuldadeFerramentaCompetências
10 h/a⭐⭐⭐GDevelop 5 (gdevelop.io)C2, C5

Objetivos de aprendizagem

  1. Centralizar o dano numa "porta de entrada" única (variável Dano).
  2. Dar invencibilidade temporária com temporizador.
  3. Diferenciar pular em cima do inimigo de encostar de lado.
  4. Achar e corrigir um erro de ordem de subeventos.
  5. Mandar o jogador de volta ao ponto de retorno quando cair num buraco.

Pré-requisitos

Aulas 4.3 e 4.4.

Materiais

Computador com o GDevelop; espinho.png; sons dano.wav e pulo.wav.

Conceitos

Uma porta de entrada para o dano. Espinho, calango e (na Aula 4.8) pedra podem machucar. Em vez de escrever "perde vida, toca som, liga invencibilidade" três vezes, cada perigo só faz Dano = 1. Um único evento lê Dano e faz o resto. Quando quiser mudar o que acontece no dano, muda num lugar só.

Invencibilidade. Depois de um dano, 1,5 s sem tomar outro. Controlada pelo temporizador Invencivel: só aceita dano se ele passou de 1,5. No começo da cena ele também é zerado, o que dá 1,5 s de proteção ao começar.

Pular em cima. Na colisão com o calango, a condição Está caindo separa os casos: caindo = derrubou o calango (e quica para cima); não caindo = encostou de lado (dano).

O erro da ordem (aconteceu de verdade). Na primeira versão da Trilha, o subevento "caindo → derruba o calango e quica" vinha antes do "não caindo → dano". O teste automático pegou: o jogador derrubava o calango e perdia vida. Motivo: depois do quique, no mesmo quadro, o jogador já está pulando (não caindo), então o subevento de baixo também era verdadeiro. Trocando a ordem, o "não caindo" é testado antes do quique, e tudo funciona.

Buraco. Se o jogador passa de y = 650 (abaixo da tela), perde uma vida e volta para VoltaX, VoltaY - 48. Esse caso não espera a invencibilidade: cair é sempre perder.

Exemplos

SituaçãoResultado
encosta no xique-xiqueDano = 1 → perde 1 vida (se não estiver invencível)
cai em cima do calangocalango some, jogador quica
encosta no calango de ladoDano = 1
cai no buracoperde 1 vida e volta ao ponto de retorno

Tutorial passo a passo

Parte A. A porta do dano (60 min)

  1. Variáveis de cena Dano (0) e Vidas (3). Zere Vidas e o temporizador Invencivel no começo da cena.
  2. Objeto Espinho; três instâncias no chão.
  3. Evento: Colisão Jogador com Espinho → Dano = 1.
  4. Evento com duas condições: Dano = 1 e Valor de um temporizador de cena "Invencivel" ≥ 1,5. Ações: Vidas subtrair 1; Iniciar (ou redefinir) um temporizador de cena "Invencivel"; som de dano.
  5. Evento sem condição, logo abaixo: Dano = 0.

Parte B. Calango: em cima ou de lado (60 min)

  1. Evento: Colisão Jogador com Calango, sem ações. Dentro dele, dois subeventos nesta ordem:
    • Está caindo (invertida) → Dano = 1;
    • Está caindo → Exclui o objeto Calango; Permitir pular novamente; Simular tecla de salto; som de pulo.
  2. Visualizar. Teste os dois jeitos.
  3. Experimento: troque a ordem dos subeventos e pule em cima do calango. Observe o placar. Volte a ordem certa e explique no diário o que aconteceu.

Parte C. Buraco (40 min)

  1. Evento: condição Posição Y do Jogador > 650. Ações: Vidas subtrair 1; Posição do Jogador = VoltaX, VoltaY - 48; reiniciar "Invencivel"; som de dano.

Parte D. Testar (40 min)

  1. Faça a tabela do Resultado esperado jogando você mesmo. Marque o que não bateu.

Imagens

  • Captura real, subeventos do calango na ordem certa, com o comentário "A ordem importa": recursos/imagens/gdevelop/captura-trilha-eventos-3.png.
  • Captura real, grupo "Dano e vidas": recursos/imagens/gdevelop/captura-trilha-eventos-4.png.

Indicação da interface

ItemOnde fica
Subeventobotão de adicionar subevento na barra da folha, com o evento pai selecionado
Arrastar para trocar a ordemsegurar a alça à esquerda do evento e soltar na nova posição
Está caindo, Permitir pular novamente, Simular tecla de saltoobjeto Jogador, grupo do comportamento de plataforma
Condição Posição Yobjeto Jogador, grupo de posição

O código completo

Grupo "Inimigos e perigos" (parte):
Jogador está em colisão com Calango
    Comentário: A ordem importa: ...
    subevento: (NÃO) Jogador está caindo  → Alterar a variável Dano: definir como 1
    subevento: Jogador está caindo        → Deletar Calango
                                             Permitir Jogador saltar novamente
                                             Simular que está pressionando a teda de salto para Jogador
                                             Reproduzir o som sons/pulo.wav, vol.: 70, loop: não
Jogador está em colisão com Espinho        → Alterar a variável Dano: definir como 1

Grupo "Dano e vidas":
A variável Dano = 1
O temporizador "Invencivel" ≥ 1.5 segundos → Alterar a variável Vidas: subtrair 1
                                             Iniciar (ou resetar) o temporizador "Invencivel"
                                             Reproduzir o som sons/dano.wav, vol.: 70, loop: não
(sem condição)                             → Alterar a variável Dano: definir como 0
A posição Y de Jogador > 650               → Alterar a variável Vidas: subtrair 1
                                             Altere a posição de Jogador: definir como VoltaX (eixo x),
                                             definir como VoltaY - 48 (eixo y)
                                             Iniciar (ou resetar) o temporizador "Invencivel"
                                             Reproduzir o som sons/dano.wav, vol.: 70, loop: não

Explicação do código

  • Dano = 0 no fim garante que um dano "pendente" durante a invencibilidade seja descartado, e não guardado para depois.
  • Permitir pular novamente antes de Simular tecla de salto: sem ela o comportamento não deixa pular no ar.

Resultado esperado (testado)

O teste automático conferiu na Trilha: encostar de lado no calango tira 1 vida; durante a invencibilidade, outro encontro não tira; cair em cima derruba o calango sem perder vida; o espinho tira 1 vida; cair no buraco tira 1 vida e devolve ao início (ou à bandeira, se já foi tocada).

Problemas comuns

SintomaCausaSolução
Perde todas as vidas num encostãofalta a condição do temporizador"Invencivel" ≥ 1,5
Derruba o calango e perde vidasubeventos na ordem errada"não caindo" primeiro
Cai em cima mas toma danocolisão começa quando o jogador já parou de cair (inimigo muito baixo)aumentar a altura do calango ou usar a posição Y na comparação
Volta para dentro do chãoesqueceu - 48 no Yo jogador tem 48 px de altura
Toma dano assim que a fase começa"Invencivel" não foi iniciadoiniciar no começo da cena

Exercício guiado

Em 3 segundos, o jogador encosta no espinho nos tempos 0,2 s, 0,9 s, 1,8 s e 2,5 s (contando a partir de um dano anterior em 0 s). Quantas vidas perde? (Resposta: 1, no tempo 1,8 s. Em 0,2 e 0,9 ainda está invencível; depois de 1,8 fica invencível até 3,3.)

Desafio individual

Faça o jogador ser empurrado para trás ao tomar dano de lado (ação de velocidade horizontal atual do comportamento).

Desafio avançado (opcional)

Coloque um espinho no teto que só machuca se o jogador pular embaixo dele. Precisa de evento novo?

Critérios de avaliação

  • Porta única de dano funcionando com invencibilidade.
  • Registro do experimento da ordem dos subeventos, com explicação.

Checklist de conclusão

Extensão

Liste três situações da vida real em que "um único lugar para decidir" evita confusão (exemplo: secretaria da escola).