Módulo 6 · Aula 6.6 · Menu de fases, vidas e recomeço
| Carga horária | Dificuldade | Ferramenta | Competências |
|---|---|---|---|
| 6 h/a | ⭐⭐ | GDevelop 5 | C2, C3 |
Objetivos de aprendizagem
- Fazer um menu que mostra cada fase como liberada ou trancada.
- Escolher a fase pelo teclado só se ela estiver liberada.
- Usar vidas globais que passam de uma fase para outra.
- Recomeçar a fase atual ao perder uma vida e ir para a tela de fim ao perder todas.
Pré-requisitos
Aulas 6.2 e 6.5.
Materiais
Computador com o GDevelop.
Conceitos
Menu como primeira cena. A cena Menu é a primeira do projeto (a bandeirinha ao lado do nome no gerenciador). Ela lê o progresso (Aula 6.5) e mostra as opções.
Texto que depende de variável. Cada opção é um objeto Texto (Opcao1, Opcao2, Opcao3). Dois eventos por opção: se FaseLiberada ≥ n, mostra o nome da fase; se for menor, mostra "trancada".
Teclas de número. Para a tecla 1 da fileira de cima do teclado, o nome é "Num1" (na Tecla acabou de ser pressionada). O teclado numérico da direita tem outros nomes; o curso usa a fileira de cima.
Vidas globais. Vidas é global: perder uma vida na Fase 2 continua valendo na Fase 3. O menu põe Vidas = 3 ao começar uma partida.
Recomeço. Pego pelo cão: Vidas − 1 e, se ainda há vidas, Alterar a cena para a própria fase ("Fase" + ToString(Fase)). Trocar para a mesma cena recria tudo: castanhas voltam, cães voltam aos postos. Sem vidas: Resultado = "perdeu" e cena Fim.
Fim volta ao menu. A tela de fim espera 1 segundo (Aula 3.8) e [Espaço] volta para o Menu, que lê de novo o progresso.
Exemplos
recursos/imagens/gdevelop/cajueiral-tela-menu.png: menu sem progresso, com a Fase 1 liberada e as Fases 2 e 3 trancadas.
Tutorial passo a passo
Parte A. A cena Menu (60 min)
- Cena
Menu, marcada como primeira cena. Título, instruções e três textos de opção, e um rodapé "Teclas 1, 2 e 3 escolhem a fase. R apaga o progresso." - Os eventos de texto das opções (dois por opção, a 1 sempre liberada).
Parte B. Escolher (60 min)
- Tecla acabou de ser pressionada
"Num1"→Vidas= 3, cena"Fase1". "Num2"eFaseLiberada≥ 2 →Vidas= 3, cena"Fase2". O mesmo para a 3.- Teste: com o progresso apagado, a tecla 2 não pode fazer nada.
Parte C. Perder vida e recomeçar (60 min)
- Em
Regras: Colisão Jogador com Cao →Vidas− 1, som; subeventosVidas> 0 → cena da própria fase;Vidas≤ 0 →"perdeu"eFim. - Placar mostra
Vidas.
Parte D. Fim (60 min)
- Cena
Fimcom mensagem porResultadoe [Espaço] para o menu depois de 1 s.
Imagens
- Captura real, eventos do menu (textos das opções, teclas
"Num1","Num2","Num3", tecla"r"):recursos/imagens/gdevelop/captura-cajueiral-menu-eventos.png
. - Captura real, grupo "Pego pelo cão":
recursos/imagens/gdevelop/captura-cajueiral-regras-4.png
. - Captura real, menu rodando:
recursos/imagens/gdevelop/cajueiral-tela-menu.png
.
Indicação da interface
| Item | Onde fica |
|---|---|
| Primeira cena | gerenciador do projeto, a cena com a bandeirinha; para mudar, menu ⋮ da cena (opção de definir como cena inicial; nome exato não conferido) |
| Nome da tecla | no campo da condição de tecla, digitar entre aspas, ou escolher na lista que o editor oferece |
O código completo
Cena Menu (parte):
(sem condição) → Alterar o texto de Opcao1: "1 Fase 1: O primeiro cercado"
A variável FaseLiberada ≥ 2 → Alterar o texto de Opcao2: "2 Fase 2: Dois cães"
A variável FaseLiberada < 2 → Alterar o texto de Opcao2: "2 Fase 2: trancada"
A tecla "Num1" foi pressionada → Vidas = 3; Alterar para a cena "Fase1"
A tecla "Num2" foi pressionada
A variável FaseLiberada ≥ 2 → Vidas = 3; Alterar para a cena "Fase2"
Regras, grupo "Pego pelo cão":
Comentário: O cão encostou: perde uma vida e a fase recomeça do início (as castanhas voltam).
Jogador está em colisão com Cao → Alterar a variável Vidas: subtrair 1
Reproduzir o som sons/pego.wav, vol.: 70, loop: não
subevento: A variável Vidas > 0 → Alterar para a cena "Fase" + ToString(Fase)
subevento: A variável Vidas ≤ 0 → Alterar a variável Resultado: definir como "perdeu"
Alterar para a cena "Fim"Explicação do código
- A troca de cena acontece no fim do quadro. Mesmo que dois cães encostem ao mesmo tempo, a ação de subtrair vida roda uma vez só, porque é uma ação de variável num único evento.
- O texto das opções é refeito todo quadro. Simples e suficiente: são três textos.
Resultado esperado (testado)
Teste automático no Cajueiral: sem progresso, as Fases 2 e 3 aparecem trancadas e a tecla 2 não sai do menu; a tecla 1 abre a Fase 1 com 3 vidas; o cão encostando na Fase 2 tirou 1 vida e a fase recomeçou com as 6 castanhas de volta; com o progresso salvo, a tecla 3 abriu direto a Fase 3; perdendo todas as vidas, o jogo foi para o Fim com a mensagem de derrota.
Problemas comuns
| Sintoma | Causa | Solução |
|---|---|---|
| A tecla 1 não faz nada | nome da tecla "1" em vez de "Num1" | usar "Num1" |
| Vidas voltam a 3 em cada fase | Vidas como variável de cena | variável global |
| Ao recomeçar, as castanhas já pegas continuam sumidas | não trocou de cena, só reposicionou o jogador | trocar para a própria cena |
| Começa direto na Fase 1 | Menu não é a primeira cena | marcar Menu como inicial |
Exercício guiado
O jogador tem 1 vida na Fase 3 e é pego. Para qual cena o jogo vai, e o que o menu mostra depois? (Resposta: Fim com derrota; o menu mostra as três fases liberadas, porque o progresso continua salvo.)
Desafio individual
Mostre no menu um coração para cada vida da última partida (Aula 5.7).
Desafio avançado (opcional)
Permita escolher a fase também com o mouse ou o toque, clicando no texto da opção (Aula 3.9).
Critérios de avaliação
- Menu com fases trancadas e liberadas corretas.
- Vidas globais e recomeço da fase.
Checklist de conclusão
Extensão
Analise o menu de um jogo que você conhece: quantas opções, o que fica trancado, como o jogo avisa que algo foi liberado.