Skip to content

elc117/game-2024b-pwdroabreu

Repository files navigation

Quizzossauro 🦖

Sobre o Jogo

Quizzossauro é um jogo interativo no qual o jogador deve ajudar o dinossauro Eduardo Moacir a responder perguntas relacionadas a paleontologia, geografia e cultura local. O objetivo é explorar o cenário enquanto aprende e testa seus conhecimentos, avançando por meio de interações com objetos no ambiente.


Autoria

Nome: Pedro Henrique G. Abreu
Curso: Sistemas de Informação - Universidade Federal de Santa Maria (UFSM)


Comentários sobre o Processo de Desenvolvimento

Planejamento e Ideia

O desenvolvimento do jogo começou com a ideia de criar um quiz associado com as demandas do trabalho. A escolha do dinossauro como personagem foi inspirada no Geoparque Quarta Colônia.

Tecnologias Utilizadas

  • Linguagem: Java
  • Framework: LibGDX
  • IDE: IntelliJ IDEA / VSCode
  • Controle de Versão: Git e GitHub

Desafios Encontrados

  1. Centralização e Renderização de Textos: Trabalhar com a renderização dinâmica de perguntas e opções foi um desafio. Soluções como o uso de GlyphLayout para medir o texto foram implementadas.
  2. Interação com Objetos: Foi necessário criar um sistema de colisão eficiente usando Rectangle para detectar interações.
  3. Gerenciamento de Estados do Jogo: A transição entre o estado de exploração e o modo de quiz exigiu uma boa organização do código e foi onde mais encontrei dificuldade.

Diagrama de Classes

Estrutura do Projeto

Main

  • Gerencia todas as telas (MenuScreen, GameScreen, VictoryScreen, GameOverScreen).
  • Possui métodos de controle como:
    • startGame()
    • decrementLives()
    • incrementCorrectAnswers()

GameScreen

  • Usa:
    • Dino: Responsável pela movimentação e colisão.
    • InteractiveObjectManager: Gerencia os objetos interativos.
    • QuizManager: Gerencia os quizzes.
    • GameRenderer: Renderiza o estado atual do jogo.
  • Interage com Main para:
    • Ajustar vidas.
    • Controlar o progresso do jogo.

Dino

  • Representa o personagem jogável.
  • Responsabilidades:
    • Movimentação.
    • Verificação de colisões (usado por GameScreen e InteractiveObjectManager).

InteractiveObjectManager

  • Cria e gerencia InteractiveObject.
  • Detecta colisões com Dino.

InteractiveObject

  • Contém:
    • Perguntas.
    • Opções de resposta.
  • Usado por:
    • InteractiveObjectManager para criar objetos interativos.
    • QuizManager para exibir quizzes.

QuizManager

  • Gerencia o estado do quiz:
    • Perguntas.
    • Respostas.
  • Interage diretamente com InteractiveObject.

GameRenderer

  • Renderiza o estado visual do jogo, incluindo:
    • Dino
    • InteractiveObjectManager

Outras Telas

MenuScreen, VictoryScreen, GameOverScreen

About

game-2024b-pwdroabreu created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published