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
  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 3 · Aula 3.6 · Criar objetos em lugar sorteado

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

Objetivos de aprendizagem

  1. Criar instâncias durante o jogo com Criar um objeto.
  2. Sortear posições com RandomInRange(mínimo, máximo).
  3. Contar instâncias com Número de instâncias do objeto na cena.
  4. Escolher a faixa do sorteio para a semente nunca nascer fora da tela nem em cima do placar.

Pré-requisitos

Aula 3.5. Aula 1.9 (clones no Scratch).

Materiais

Computador com o GDevelop; o seu projeto; papel quadriculado para desenhar a área de sorteio.

Conceitos

Criar durante o jogo. Além das instâncias colocadas à mão na cena, os eventos podem criar novas. É o "crie clone de" do Scratch.

Sorteio. RandomInRange(40, 740) sorteia um número inteiro de 40 a 740, incluindo os dois. Cada vez que o evento roda, sai um número novo.

Regra de manutenção. Em vez de "quando pegar uma semente, crie outra", o jogo de referência usa "se há menos de 3 sementes, crie uma". Assim o número de sementes na tela é sempre o mesmo, mesmo que o jogador pegue duas de uma vez.

Área segura. A tela tem 800 × 600. A faixa do placar ocupa de y = 0 a 54. A semente tem 20 × 20 e a posição criada é o canto de cima à esquerda dela. Por isso o sorteio vai de x = 40 a 740 e de y = 90 a 540: sobra margem dos lados e embaixo, e nunca nasce no placar.

Exemplos

JogoO que é criado durante o jogo
Sementes do Sertãosementes, sempre 3
Caça-Estrelas (Scratch)a estrela volta para cima em x sorteado
Jogo de navetiros e inimigos

Tutorial passo a passo

Parte A. Planejar no papel (30 min)

  1. Desenhe um retângulo de 800 × 600 (1 quadradinho = 20 px). Pinte a faixa do placar e marque a área de sorteio.

Parte B. O evento (60 min)

  1. Novo evento. Condição: Outras Condições (ou pesquise "Número de instâncias") → Número de instâncias do objeto na cena → objeto Semente → sinal < → 3.
  2. Ação: Criar um objeto → objeto Semente → X: RandomInRange(40, 740) → Y: RandomInRange(90, 540) → camada: deixe a base.
  3. Visualizar. Pegue uma semente: nasce outra em lugar sorteado.

Parte C. Teste de sorteio (60 min)

  1. Jogue 1 minuto contando quantas sementes nasceram perto das bordas. Alguma ficou cortada? Alguma no placar?
  2. Mude para RandomInRange(0, 800) e repita. Anote a diferença. Volte para a faixa segura.

Imagens

  • Captura real, evento 5 do jogo de referência ("O número de Semente vivendo na cena < 3" → "Criar objeto Semente na posição RandomInRange(40, 740); RandomInRange(90, 540)"): recursos/imagens/gdevelop/captura-eventos-parte2.png.

Indicação da interface

ItemOnde fica
Número de instâncias do objeto na cenajanela de condições; pesquisar "instâncias"
Criar um objetojanela de ações, aba de ações gerais (ou pesquisar "Criar")
Campo de camadaúltima pergunta da ação Criar um objeto; vazio = camada base

O código completo

Comentário: Sempre 3 sementes na tela, em lugar sorteado.
Condição: O número de Semente vivendo na cena < 3
Ação:     Criar objeto Semente na posição RandomInRange(40, 740); RandomInRange(90, 540)
          (camada: Camada base)

Explicação do código

  • O evento roda a cada quadro. Enquanto houver 3 sementes, a condição é falsa e nada acontece. Quando uma some, no quadro seguinte nasce outra.
  • Se o jogador pegar duas no mesmo quadro, nascem duas em dois quadros seguidos. Ninguém percebe.
  • As 3 sementes colocadas à mão na cena continuam servindo para o começo da partida.

Resultado esperado

Sempre há exatamente 3 sementes na tela, nunca cortadas na borda nem em cima do placar.

Problemas comuns

SintomaCausaSolução
Nascem centenas de sementessinal errado (> ou ≥) ou número muito alto< 3
Semente nasce sempre no mesmo lugarescreveu um número fixo em X ou Yusar RandomInRange
Semente cortada na borda direitamáximo de X igual a 800máximo 740 (largura da tela menos a semente e uma margem)
Semente nasce atrás do fundocamada ou ordem Zdeixar a camada base e ordem Z maior que o Fundo

Exercício guiado

Calcule a área segura para um objeto de 60 × 60 numa tela de 800 × 600 com placar de 54 px de altura e margem de 20 px. (Resposta: X de 20 a 720; Y de 74 a 520.)

Desafio individual

Faça nascer uma semente dourada (a animação que você desenhou na Aula 3.2) a cada 10 sementes pegas, valendo 5 pontos. Dica: crie um objeto novo SementeDourada.

Desafio avançado (opcional)

Faça o número de sementes na tela subir de 3 para 5 depois de 30 segundos de jogo. Use uma variável MaxSementes no lugar do 3.

Critérios de avaliação

  • Evento de manutenção correto.
  • Área de sorteio calculada e justificada no papel.

Checklist de conclusão

Extensão

Use o sorteio em outra matéria: monte no GDevelop uma cena que mostra uma conta de multiplicação sorteada (RandomInRange(1, 10) vezes RandomInRange(1, 10)) num objeto Texto.