feat/68-Concluir-o-minigame-de-recolher-comidas
O que esse MR faz?
Cria um novo jogo em que o pet deve pegar somente as comidas que o fazem bem
Screenshots
Antes | Depois |
---|---|
![]() |
Como configurar e validar localmente?
- Acessar a aba de minigames e clicar em FoodGame
- Clicar em começar na tela de start, e iniciar o jogo
Checklist de aceitação do MR
- o jogo consiste em pegar a comida correta, ao pegar uma ração, o pet ganha 10 pontos, ao pegar um doce, o pet perde uma vida
- o jogo possibilita a chance de caírem vidas e moedas, vidas spawnam ao ter menos de 3 vidas (não é possível ter mais de 3 vidas), moedas são raras, mas aumentam chances de spawnarem a cada 100 pontos
- no final do jogo, são exibidas as moedas, a pontuação e uma mensagem de lembrete para cuidados com o alimento do pet
Obs: ainda não tenho um modelo de imagem para o cachorro
Explicação de arquivos:
Index: é o component pai, nele renderizamos o jogo, ou as telas de inicio e fim com base no status
GameManager: guarda todos os principais estados e funções do jogo, é um hook criado para gerenciar toda lógica, deste o start do jogo até aumento de dificuldade e testes de colisão
Character: é o componente que renderiza o player do jogo, é memoizado para evitar travamentos, apenas renderizando novamente quando a posição do GameManager é alterada
Foods: arquivo que possui a lista das comidas em tela e possui a função de criação das comidas, é responsável pelo listener que atualiza o y de cada comida e trigga o useEffect do Renderer, para enfim testar as colisões.
Renderer: Renderiza os componentes do jogo, faz um animate para as comidas, usando a velocidade com base na dificuldade atual, renderiza o player, contém o PanResponder que movimenta o player, e também exibe a barra de status
GameConfig: contém o default do game, todos os valores iniciais, de velocidade, spawn, tamanho de tela, tamanho de comida, tamanho de player, etc.
Obs: qualquer coisa podem me chamar pois algumas partes do código podem ter ficado confusas