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.7 · Organizar: grupos de eventos e funções

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

Objetivos de aprendizagem

  1. Organizar uma folha de eventos grande em grupos com nome.
  2. Criar uma extensão com uma função de ação própria.
  3. Passar um objeto como parâmetro para a função.
  4. Explicar quando vale a pena criar uma função.

Pré-requisitos

Aulas 4.1 a 4.6.

Materiais

Computador com o GDevelop; a Trilha montada até a Aula 4.6.

Conceitos

Grupo de eventos. Uma "pasta" na folha de eventos, com nome e cor, que pode ser recolhida. A Trilha tem 7 grupos: Começo da partida, Pausa, Jogador, Coletas e checkpoint, Inimigos e perigos, Dano e vidas, Placar e fim. Com tudo recolhido, a folha cabe numa tela e serve de índice do jogo.

Função. Um pedaço de eventos com nome próprio, que vira uma ação nova. A Trilha tem a função Piscar: deixa um objeto alternando entre meio transparente e opaco. Na folha ela aparece como "Fazer Jogador piscar", igual a uma ação nativa.

Parâmetro. O que a função recebe. Piscar recebe um objeto do tipo Sprite. Assim a mesma função serve para o jogador, para um inimigo ferido ou para um item prestes a sumir.

Extensão. O lugar onde as funções moram. A Trilha tem a extensão Utilidades. Uma extensão pode ser copiada para outro projeto.

A conta do pisca. TimeFromStart() é o tempo desde o início da cena. Vezes 10, arredondado para baixo e com resto da divisão por 2 (mod), dá 0, 1, 0, 1... trocando a cada 0,1 s. Se der 0, opacidade 70; se der 1, opacidade 255.

Quando criar uma função. Quando o mesmo conjunto de ações aparece em dois lugares ou mais, ou quando dar um nome deixa o evento muito mais fácil de ler.

Exemplos

FunçãoRecebeFaz
Piscarum objetoalterna a opacidade
Tremer a tela (ideia)intensidademexe a câmera por um instante
Soltar partículas (ideia)posiçãocria pedacinhos que se espalham

Tutorial passo a passo

Parte A. Grupos (60 min)

  1. Na folha de eventos da cena Jogo, adicione um grupo (botão de grupo na barra da folha) chamado "Jogador".
  2. Arraste para dentro os eventos de animação, de virar e da câmera.
  3. Repita para os outros seis grupos. Dê cores diferentes.
  4. Recolha todos. A folha virou um índice.

Parte B. A extensão e a função (90 min)

  1. No gerenciador do projeto, crie uma extensão nova e renomeie para Utilidades.
  2. Adicione uma função. Em Configuração de Função: Tipo de função = Ação; Nome completo = "Piscar"; Descrição = "Faz o objeto piscar"; Sentença na Folha de Eventos = Fazer _PARAM1_ piscar.
  3. Parâmetro #1: Tipo = Objetos; Tipo de objeto = Sprite; nome Objeto; Rótulo = "Objeto".
  4. Dentro da função, dois eventos:
    • mod(floor(TimeFromStart() * 10), 2) = 0 → opacidade de Objeto = 70;
    • mod(floor(TimeFromStart() * 10), 2) = 1 → opacidade de Objeto = 255.

Parte C. Usar a função (40 min)

  1. No grupo "Dano e vidas": temporizador "Invencivel" < 1,5 → Fazer Jogador piscar (está nas ações, dentro da extensão Utilidades).
  2. Temporizador ≥ 1,5 → opacidade do Jogador = 255 (para não ficar meio apagado).
  3. Visualizar e encoste num espinho.

Imagens

  • Captura real, editor da função Piscar com Configuração de Função, parâmetro e os dois eventos: recursos/imagens/gdevelop/captura-funcao-piscar.png.
  • Captura real, folha de eventos com os grupos: recursos/imagens/gdevelop/captura-trilha-eventos-1.png.
  • Captura real, chamada "Fazer Jogador piscar" no grupo "Dano e vidas": recursos/imagens/gdevelop/captura-trilha-eventos-4.png.

Indicação da interface

ItemOnde fica
Adicionar grupobarra de ícones da folha de eventos
Extensões do projetogerenciador do projeto, seção de funções/extensões
Configuração de Funçãoparte de cima do editor da função
Ação da funçãojanela de ações, procure pelo nome da extensão ou "piscar"

O código completo

Extensão Utilidades, função Piscar (Ação)
Sentença: Fazer _PARAM1_ piscar
Parâmetro 1: Objeto (Objetos, tipo Sprite)

mod(floor(TimeFromStart() * 10), 2) = 0   → Alterar a opacidade de Objeto: definir como 70
mod(floor(TimeFromStart() * 10), 2) = 1   → Alterar a opacidade de Objeto: definir como 255

Na cena Jogo, grupo "Dano e vidas":
O temporizador "Invencivel" < 1.5 segundos   → Fazer Jogador piscar
O temporizador "Invencivel" ≥ 1.5 segundos   → Alterar a opacidade de Jogador: definir como 255

Explicação do código

  • floor arredonda para baixo; mod(n, 2) dá o resto da divisão por 2. Juntos fazem uma "onda quadrada" de 0 e 1.
  • O tipo de objeto Sprite no parâmetro é obrigatório: é ele que libera a ação de opacidade dentro da função. (Na primeira versão gerada da Trilha faltou isso, a ação ficou vazia e o teste automático pegou: o jogador não piscava.)

Resultado esperado (testado)

Teste automático: logo depois de um dano, a opacidade do jogador alternou entre 70 e 255; passado 1,5 s, ficou em 255.

Problemas comuns

SintomaCausaSolução
Não acho a ação de opacidade dentro da funçãoparâmetro sem tipo de objetoTipo de objeto = Sprite
A função não aparece na lista de açõesTipo de função diferente de Açãoconferir a configuração
A sentença mostra "_PARAM1_"escreveu o número erradoo primeiro parâmetro do usuário é _PARAM1_
O jogador termina meio transparentefalta o evento de opacidade 255adicionar o evento ≥ 1,5

Exercício guiado

Com TimeFromStart() = 3,47, quanto vale mod(floor(3,47 * 10), 2)? E qual é a opacidade? (Resposta: floor(34,7) = 34; resto de 34 por 2 = 0; opacidade 70.)

Desafio individual

Crie a função Tremer que recebe um número (intensidade) e mexe a câmera para os lados. Use quando o jogador perde vida.

Desafio avançado (opcional)

Mude Piscar para receber também a velocidade (número de piscadas por segundo) como segundo parâmetro.

Critérios de avaliação

  • Folha organizada em grupos com nomes claros.
  • Função com parâmetro de objeto funcionando.

Checklist de conclusão

Extensão

Uma receita de bolo usa "funções" como "bater as claras". Escreva uma receita que você conhece separando as etapas que se repetem em funções com nome.