Módulo 3 · Aula 3.6 · Criar objetos em lugar sorteado
| Carga horária | Dificuldade | Ferramenta | Competências |
|---|---|---|---|
| 8 h/a | ⭐⭐ | GDevelop 5 (gdevelop.io) | C1, C2 |
Objetivos de aprendizagem
- Criar instâncias durante o jogo com Criar um objeto.
- Sortear posições com
RandomInRange(mínimo, máximo). - Contar instâncias com Número de instâncias do objeto na cena.
- 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
| Jogo | O que é criado durante o jogo |
|---|---|
| Sementes do Sertão | sementes, sempre 3 |
| Caça-Estrelas (Scratch) | a estrela volta para cima em x sorteado |
| Jogo de nave | tiros e inimigos |
Tutorial passo a passo
Parte A. Planejar no papel (30 min)
- 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)
- 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. - Ação: Criar um objeto → objeto Semente → X:
RandomInRange(40, 740)→ Y:RandomInRange(90, 540)→ camada: deixe a base. - Visualizar. Pegue uma semente: nasce outra em lugar sorteado.
Parte C. Teste de sorteio (60 min)
- Jogue 1 minuto contando quantas sementes nasceram perto das bordas. Alguma ficou cortada? Alguma no placar?
- 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
| Item | Onde fica |
|---|---|
| Número de instâncias do objeto na cena | janela de condições; pesquisar "instâncias" |
| Criar um objeto | janela 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
| Sintoma | Causa | Solução |
|---|---|---|
| Nascem centenas de sementes | sinal errado (> ou ≥) ou número muito alto | < 3 |
| Semente nasce sempre no mesmo lugar | escreveu um número fixo em X ou Y | usar RandomInRange |
| Semente cortada na borda direita | máximo de X igual a 800 | máximo 740 (largura da tela menos a semente e uma margem) |
| Semente nasce atrás do fundo | camada ou ordem Z | deixar 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.