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.8 · Pedras que rolam da serra: criar objetos com o tempo

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

Objetivos de aprendizagem

  1. Criar objetos durante o jogo em intervalos regulares.
  2. Sortear a posição de criação perto do jogador.
  3. Apagar objetos que saíram da tela para o jogo não ficar pesado.
  4. Ligar um perigo novo à porta de dano da Aula 4.5 com uma linha só.

Pré-requisitos

Aulas 4.5 e 3.6 (temporizadores e sorteio).

Materiais

Computador com o GDevelop; pedra.png.

Conceitos

Gerador. Um par temporizador + ação Criar um objeto. A cada 5 segundos, uma pedra nasce acima da tela (y = −40) e cai.

Perto do jogador. A posição X é Jogador.X() + RandomInRange(-250, 250): até 250 px para qualquer lado. Se fosse sorteada na fase inteira (0 a 2400), quase todas as pedras cairiam longe e ninguém veria.

Queda com força. As pedras não têm comportamento de plataforma. Uma força instantânea de 260 px/s para baixo, todo quadro, faz a pedra descer em velocidade constante. É mais simples que gravidade e fácil de desviar.

Limpeza. Toda pedra com y > 650 é apagada. Sem isso, depois de 10 minutos haveria 120 pedras caindo para sempre abaixo da fase, gastando processamento.

Reaproveitar a porta de dano. Colisão com a pedra só faz Dano = 1 (e apaga a pedra). Invencibilidade, som e perda de vida já existem.

Exemplos

JogoO que é gerado
Trilha da Serrapedra a cada 5 s
Coleta do Caju (Módulo 1)caju a cada intervalo
jogos de naveinimigos em ondas

Tutorial passo a passo

Parte A. A pedra (30 min)

  1. Objeto Sprite Pedra com pedra.png. Não coloque nenhuma instância na cena.
  2. No No começo da cena: Iniciar (ou redefinir) um temporizador de cena "Pedras".

Parte B. O gerador (60 min)

  1. Comentário: "A cada 5 segundos uma pedra cai da serra perto do jogador."
  2. Evento: Valor de um temporizador de cena "Pedras" ≥ 5 → Criar um objeto Pedra em X = Jogador.X() + RandomInRange(-250, 250), Y = -40; reiniciar "Pedras".
  3. Evento sem condição: força instantânea na Pedra X = 0, Y = 260.
  4. Visualizar e fique parado. Conte as pedras em 30 segundos.

Parte C. Limpar e machucar (40 min)

  1. Evento: Posição Y da Pedra > 650 → Excluir o objeto Pedra.
  2. Evento: Colisão Jogador com Pedra → excluir a Pedra; Dano = 1.
  3. Use o depurador do GDevelop (ou um texto provisório com SceneInstancesCount(Pedra)) para confirmar que o número de pedras não cresce sem parar.

Imagens

  • Captura real, eventos das pedras no grupo "Inimigos e perigos": recursos/imagens/gdevelop/captura-trilha-eventos-3.png.

Indicação da interface

ItemOnde fica
Criar um objetoações, grupo de objetos (pesquisar "criar")
RandomInRangedigitar no campo de expressão; o editor sugere
Condição Posição Yobjeto Pedra, grupo de posição

O código completo

Comentário: A cada 5 segundos uma pedra cai da serra perto do jogador.
O temporizador "Pedras" ≥ 5 segundos   → Criar objeto Pedra na posição
                                          Jogador.X() + RandomInRange(-250, 250); -40 (camada: Camada base)
                                          Iniciar (ou resetar) o temporizador "Pedras"
(sem condição)                          → Adicionar à Pedra instantânea uma força de 0 p/s no eixo X
                                          e 260 p/s no eixo Y
A posição Y de Pedra > 650              → Deletar Pedra
Jogador está em colisão com Pedra       → Deletar Pedra
                                          Alterar a variável Dano: definir como 1

Explicação do código

  • Reiniciar o temporizador dentro do mesmo evento que cria é o que faz "uma a cada 5 s". Esquecer isso cria uma pedra por quadro depois do quinto segundo.
  • A pedra recém-criada já recebe a força no mesmo quadro, porque o evento da força vem logo abaixo.

Resultado esperado (testado)

Teste automático: com o temporizador "Pedras" adiantado, apareceu pelo menos uma pedra e ela desceu mais de 40 px em pouco tempo. A colisão com a pedra usa a mesma porta de dano já testada na Aula 4.5.

Problemas comuns

SintomaCausaSolução
Chuva infinita de pedrasnão reinicia o temporizadorreiniciar no mesmo evento
Pedra nasce e fica paradaevento de força faltandoadicionar força Y 260
Pedras aparecem no início da fase mesmo com o jogador longeX fixousar Jogador.X() + ...
Jogo fica lento depois de um tempopedras não são apagadasevento Y > 650

Exercício guiado

Em 1 minuto e meio de jogo, quantas pedras foram criadas? (Resposta: 90 ÷ 5 = 18.)

Desafio individual

Deixe o jogo mais difícil com o tempo: o intervalo começa em 5 s e diminui 0,5 s a cada pedra, sem passar de 2 s. Dica: troque o 5 por uma variável.

Desafio avançado (opcional)

Mostre uma sombra no chão 1 segundo antes de a pedra cair, no mesmo X, como aviso para o jogador.

Critérios de avaliação

  • Gerador funcionando com posição sorteada perto do jogador.
  • Pedras apagadas fora da tela.

Checklist de conclusão

Extensão

Em Matemática, RandomInRange(-250, 250) sorteia entre 501 valores inteiros. Qual a chance de a pedra cair exatamente em cima do jogador, se ele ocupa 32 px de largura? (Resposta aproximada: 32 em 501, uns 6%.)