Projeto 3 · A sua fase de plataforma
Duração: 14 horas-aula (depois da Aula 4.9). Formato: individual. Dupla só com autorização do professor, e então com divisão de tarefas escrita. Ferramenta: GDevelop 5, aplicativo para computador.
A proposta
Fazer uma fase de plataforma sua, com a mesma estrutura da Trilha da Serra, mas com lugar, personagem e perigos próprios. Exemplos: subir a serra de Uruburetama atrás de um bode fujão, atravessar o mangue catando caranguejos, correr pelo telhado da escola para pegar a pipa, descer a duna sem cair no lagamar.
O foco aqui é programação: a arte pode ser a da Trilha trocada só em parte. No Módulo 5 o aluno refaz a arte.
Requisitos obrigatórios
| Nº | Requisito | Aula de origem |
|---|---|---|
| 1 | Mapa da fase no papel, com escala, antes de montar | 4.2 |
| 2 | Personagem de plataforma com Parado, Andando e Pulando, virando para o lado certo | 4.1 |
| 3 | Fase de pelo menos três telas de largura, com câmera presa aos limites | 4.2 |
| 4 | Fundo e placar em camadas próprias | 4.2 |
| 5 | Itens que guiam o caminho, placar "pegos / total" | 4.3 |
| 6 | Ponto de retorno que guarda a posição | 4.3 |
| 7 | Pelo menos um inimigo que patrulha com variável de objeto | 4.4 |
| 8 | Porta única de dano, invencibilidade e buraco que devolve ao ponto de retorno | 4.5 |
| 9 | Pausa com estado e camada própria | 4.6 |
| 10 | Eventos em grupos com nome e pelo menos uma função própria | 4.7 |
| 11 | Um perigo gerado com o tempo | 4.8 |
| 12 | Uma lista (array) usada de verdade na tela final | 4.9 |
Cronograma sugerido (14 h)
| Horas | Etapa | Entrega parcial |
|---|---|---|
| 2 | Tema, mapa no papel, lista de perigos | mapa aprovado |
| 6 | Montagem e eventos (adaptando a Trilha) | fase jogável do começo ao fim |
| 2 | Teste com 3 colegas (ficha do Módulo 2) | fichas preenchidas |
| 2 | Ajustes de dificuldade e correções | v2 |
| 1 | README e exportação | entrega final |
| 1 | Mostra rápida | apresentação |
O que entregar
- Pasta do projeto do GDevelop (o
.jsoncom as pastas de imagens e sons). .zipda pasta exportada em HTML5 (passo a passo da Aula 3.11).README.mddo jogo: nome, como jogar, controles, autor, créditos (modelo emPROJETOS.md).- Foto do mapa no papel e as 3 fichas de teste.
- Diário do projeto, com pelo menos um erro que você encontrou e como resolveu.
Rubrica do Projeto 3 (28 pontos, convertidos para 4,0)
| Critério | 1 (iniciando) | 2 (em desenvolvimento) | 3 (adequado) | 4 (avançado) |
|---|---|---|---|---|
| Funcionamento | não dá para chegar ao fim | chega ao fim com falhas | os 12 requisitos funcionam | funciona e trata casos raros (ex.: dano e item no mesmo quadro) |
| Organização | eventos soltos | alguns grupos | grupos com nome, comentários e uma função | o autor explica qualquer grupo sem consultar |
| Física e controle | pulo estranho, personagem preso | funciona com tropeços | pulo e câmera confortáveis | valores ajustados com medida registrada (tabela da Aula 4.1) |
| Inimigos e perigos | só perigos parados | um inimigo com falha | inimigo e perigo gerado funcionando | dois tipos de inimigo ou comportamento extra (desafios das aulas) |
| Dados | sem variáveis além de pontos | variáveis de cena só | estado, variável de objeto e lista usados | estrutura ou lista com mais de um uso |
| Teste e depuração | sem teste | testou sem registrar | 3 fichas e um erro resolvido no diário | v1 × v2 comparadas e erro explicado com causa |
| Design da fase | sem mapa | mapa diferente do jogo | mapa e jogo batem; itens guiam o caminho | ritmo pensado: trecho fácil, desafio, descanso, desafio maior |
Nota = soma ÷ 7.
Questões de saída (individuais, 20 minutos)
- Por que
Direcaodo calango é variável de objeto e não de cena? - Na colisão com o calango, por que o subevento "não está caindo" precisa vir antes do "está caindo"?
- Por que dois eventos "[P] → pausa" e "[P] → despausa" não funcionam, e como a Trilha resolve?
- Para que serve apagar as pedras com Y > 650?
- Como mostrar o último valor de uma lista
Tempos?
Gabarito
- Porque cada calango precisa da sua direção; com variável de cena todos andariam juntos.
- Porque o subevento do pulo faz o jogador quicar: no mesmo quadro ele deixa de estar caindo, e o subevento de baixo daria dano também.
- No mesmo quadro o primeiro muda para pausado e o segundo, vendo pausado, volta para jogando. A Trilha usa
TrocarPausa: a tecla só pede a troca, e quem atende zera o pedido. - Para não acumular objetos fora da tela gastando processamento.
Tempos[VariableChildCount(Tempos) - 1], porque as posições começam em 0.