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 6 · Aula 6.2 · Várias fases, as mesmas regras: eventos externos

Carga horáriaDificuldadeFerramentaCompetências
8 h/a⭐⭐⭐GDevelop 5C2, C5

Objetivos de aprendizagem

  1. Fazer cada fase como uma cena (Fase1, Fase2, Fase3).
  2. Escrever as regras uma vez só, em eventos externos, e incluí-las em cada fase.
  3. Guardar os números de cada fase em variáveis de cena definidas no começo da cena.
  4. Ir para a próxima fase montando o nome da cena com uma conta.

Pré-requisitos

Aula 6.1. Aula 3.8 (cenas) e Aula 4.7 (grupos de eventos).

Materiais

Computador com o GDevelop; as fases desenhadas na Aula 6.1.

Conceitos

Uma cena por fase. Cada fase tem o seu desenho (cercas, castanhas, cães em lugares diferentes). Por isso cada uma é uma cena.

O problema da cópia. Se cada cena tiver uma cópia das regras, uma correção precisa ser feita três vezes, e um dia alguém esquece uma. É o mesmo problema da "porta única do dano" da Aula 4.5, agora entre cenas.

Eventos externos. Uma folha de eventos que não pertence a nenhuma cena. Fica no gerenciador do projeto, em Eventos externos. No Cajueiral ela se chama Regras e tem todos os grupos: Começo da fase, Jogador, Cão: máquina de estados, Castanhas e saída, Pego pelo cão, Placar.

Incluir (Link). Em cada cena de fase, um evento especial aparece como "Incluir eventos de Regras". Na hora de rodar, é como se as regras estivessem copiadas ali.

Números da fase. Antes do link, cada fase define as suas variáveis de cena no No começo da cena: Fase, Total (castanhas), VelPatrulha e VelPerseguicao. As regras usam esses nomes, sem saber em que fase estão.

Nome da cena montado. Para ir para a próxima fase: Alterar a cena com "Fase" + ToString(Fase + 1). Na Fase 1 dá "Fase2". Para recomeçar a mesma fase: "Fase" + ToString(Fase).

Exemplos

CenaEventos própriosInclui
Fase1Fase = 1, Total = 5, VelPatrulha = 60, VelPerseguicao = 110Regras
Fase2Fase = 2, Total = 6, VelPatrulha = 70, VelPerseguicao = 125Regras
Fase3Fase = 3, Total = 7, VelPatrulha = 80, VelPerseguicao = 140Regras

Tutorial passo a passo

Parte A. Criar as cenas (60 min)

  1. No gerenciador do projeto, crie Fase1. Monte a fase 1 do seu papel (Aula 6.1).
  2. Crie Fase2 e Fase3. Dica: os objetos podem ser copiados de uma cena para outra (selecione na lista de objetos e use copiar e colar).
  3. Em cada cena, crie as variáveis de cena Fase, Total, Castanhas, VelPatrulha e VelPerseguicao.

Parte B. Os eventos externos (90 min)

  1. No gerenciador do projeto, em Eventos externos, clique no + e dê o nome Regras.
  2. O GDevelop pergunta (ou mostra no topo da folha) a qual cena esses eventos estão associados, para saber quais objetos existem. Escolha Fase1.
  3. Passe para Regras os eventos de jogador, castanhas, saída e placar que você já tem, organizados em grupos (Aula 4.7).

Parte C. Incluir em cada fase (60 min)

  1. Na folha de eventos de Fase1: um evento No começo da cena com os números da fase.
  2. Logo abaixo, adicione o evento que inclui eventos externos (no botão Adicionar... no fim da folha, procure a opção de incluir/link) e escolha Regras. Ele aparece como "Incluir eventos de Regras".
  3. Repita em Fase2 e Fase3, mudando só os números.

Parte D. Passar de fase (30 min)

  1. Em Regras: colisão com a saída aberta → subevento Fase < 3 → Alterar a cena "Fase" + ToString(Fase + 1); subevento Fase = 3 → cena "Fim".
  2. Visualizar a partir da Fase1 e passe pelas três.

Imagens

  • Captura real, gerenciador do projeto com Cenas (Menu, Fase1, Fase2, Fase3, Fim) e Eventos externos (Regras): recursos/imagens/gdevelop/captura-cajueiral-gerenciador.png.
  • Captura real, folha da Fase1 com os números e "Incluir eventos de Regras": recursos/imagens/gdevelop/captura-cajueiral-fase1-eventos.png.

Indicação da interface

ItemOnde fica
Eventos externosgerenciador do projeto (ícone ☰ no canto de cima), abaixo de Extensões
Evento de incluirbotão Adicionar... no fim da folha de eventos; o nome exato da opção não foi conferido para esta aula
Abrir os eventos incluídosícone de seta ao lado de "Incluir eventos de Regras"

O código completo

Cena Fase1:
Comentário: Fase 1: O primeiro cercado. Só os números da fase ficam aqui; as regras são as mesmas.
No começo da cena   → Alterar a variável Fase: definir como 1
                      Alterar a variável Total: definir como 5
                      Alterar a variável VelPatrulha: definir como 60
                      Alterar a variável VelPerseguicao: definir como 110
Incluir eventos de Regras

Eventos externos Regras, grupo "Castanhas e saída" (parte):
Jogador está em colisão com Saida
O número de Castanha vivendo na cena = 0
    subevento: Fase + 1 > FaseLiberada → (salvar progresso, Aula 6.5)
    subevento: A variável Fase < 3     → Alterar para a cena "Fase" + ToString(Fase + 1)
    subevento: A variável Fase = 3     → Alterar a variável Resultado: definir como "venceu"
                                         Alterar para a cena "Fim"

Explicação do código

  • O evento da fase vem antes do link: no primeiro quadro, as variáveis já estão definidas quando as regras rodam.
  • Os eventos externos só podem usar objetos que existem em todas as cenas que os incluem. Por isso todas as fases têm os mesmos objetos (Jogador, Cao, Castanha, Cerca, Saida, Placar), só em lugares diferentes.

Resultado esperado (testado)

Teste automático no Cajueiral: a porteira aberta da Fase 1 levou à Fase2; a da Fase 2 levou à Fase3, que tinha 3 cães e perseguição a 140; a da Fase 3 levou ao Fim com "venceu".

Problemas comuns

SintomaCausaSolução
Erro de objeto desconhecido nas Regrasalguma fase não tem o objetocriar o objeto em todas as fases (mesmo nome)
A fase 2 usa a velocidade da fase 1esqueceu o evento de números na Fase2cada fase define os seus números
Vai para "Fase4" e travafalta o subevento Fase = 3tratar a última fase à parte
A cena não trocanome escrito diferente (fase2, Fase 2)o nome montado precisa ser idêntico ao da cena

Exercício guiado

Com Fase = 2, quanto vale "Fase" + ToString(Fase + 1)? E "Fase" + ToString(Fase) + "1"? (Resposta: "Fase3"; "Fase21".)

Desafio individual

Acrescente uma quarta fase sem mexer nas Regras, só criando a cena e mudando os números da Fase 3 para que ela leve à 4. O que mais precisou mudar?

Desafio avançado (opcional)

Em vez de Fase < 3, use uma variável global TotalDeFases para não ter o número 3 escrito nas Regras.

Critérios de avaliação

  • Três cenas de fase com as mesmas regras incluídas.
  • Números de cada fase definidos na própria cena.
  • Passagem de fase funcionando até o fim.

Checklist de conclusão

Extensão

Uma receita usada em três festas diferentes é a mesma receita; o que muda é a quantidade. Escreva uma "receita de fase" do seu jogo com os ingredientes que mudam em cada fase.