How gabrielcamargogsilva/geometry-dash-poo works
Geometry Dash POO is a Java desktop game. The player starts or navigates through menus with keyboard and mouse; the controller routes those actions into game state and progression, while the view renders play and result screens. Phases are loaded from JSON, and local profile settings preserve customization and best progress. The graph reflects README descriptions and the supplied source/index references; some subsystem links rely on the index rather than full source excerpts.
Main entry points: GameModel.java Game model · GameController.java Game controller · InputController.java Input handling · Main.java Application startup
Components 21
Application and input
- Application startup
src/geometrydash/Main.java - Game controller
src/geometrydash/controller/GameController.java - Input handling
src/geometrydash/controller/InputController.java - Game loop
src/geometrydash/controller/GameLoop.java
Game domain
- Game model
src/geometrydash/model/service/GameModel.java - Game service
src/geometrydash/model/service/GameService.java - Game state
src/geometrydash/model/entity/GameState.java - Obstacle types
src/geometrydash/model/entity/Obstacle.java - Phase data
src/geometrydash/model/entity/Phase.java - Phase service
src/geometrydash/model/service/PhaseService.java - JSON phase loader
src/geometrydash/model/service/PhaseLoader.java
Presentation
- Game window
src/geometrydash/view/GameWindow.java - Game panel
src/geometrydash/view/GamePanel.java - Menu button
src/geometrydash/view/component/MenuButton.java
Audio and profile
- Audio interface
src/geometrydash/audio/AudioService.java - Audio manager
src/geometrydash/audio/AudioManager.java - Profile service
src/geometrydash/model/service/PlayerProfileService.java - Profile repository
src/geometrydash/model/repository/PlayerProfileRepository.java - File profile store
src/geometrydash/model/repository/FilePlayerProfileRepository.java - Profile store adapter
src/geometrydash/persistence/ProfileStore.java
Other components
- Player
Connections 36
- Player → Input handling: sends input
README.md - Application startup → Game window: opens
src/geometrydash/Main.java - Application startup → Game controller: creates
src/geometrydash/Main.java - Application startup → Game model: creates
src/geometrydash/Main.java - Application startup → Phase service: loads phase
src/geometrydash/Main.java - Application startup → Profile service: loads profile
src/geometrydash/Main.java - Application startup → Audio manager: selects
README.md - Game window → Game panel: hosts
src/geometrydash/view/GameWindow.java - Game controller → Input handling: registers
src/geometrydash/controller/GameController.java - Game controller → Game loop: starts
src/geometrydash/controller/GameController.java - Game controller → Game model: coordinates
src/geometrydash/controller/GameController.java - Game controller → Game panel: connects
src/geometrydash/controller/GameController.java - Game controller → Audio interface: uses
src/geometrydash/controller/GameController.java - Game controller → Profile store adapter: uses
src/geometrydash/controller/GameController.java - Input handling → Game model: dispatches actions
src/geometrydash/controller/InputController.java - Input handling → Game panel: reads buttons
src/geometrydash/controller/InputController.java - Input handling → Audio interface: plays effects
src/geometrydash/controller/InputController.java - Input handling → Profile service: saves choices
src/geometrydash/controller/InputController.java - Input handling → Menu button: checks hover
src/geometrydash/controller/InputController.java - Game loop → Game model: updates
src/geometrydash/controller/GameLoop.java - Game loop → Game panel: repaints
src/geometrydash/controller/GameLoop.java - Game loop → Audio interface: controls audio
src/geometrydash/controller/GameLoop.java - Game loop → Profile service: persists record
src/geometrydash/controller/GameLoop.java - Game panel → Game model: renders state
src/geometrydash/view/GamePanel.java - Game panel → Menu button: draws
src/geometrydash/view/GamePanel.java - Game model → Game state: tracks
src/geometrydash/model/service/GameModel.java - Game model → Obstacle types: checks collisions
src/geometrydash/model/service/GameModel.java - Game model → Phase data: uses
src/geometrydash/model/service/GameModel.java - Phase service → JSON phase loader: delegates loading
src/geometrydash/model/service/PhaseService.java - JSON phase loader → Phase data: builds
src/geometrydash/model/service/PhaseLoader.java - JSON phase loader → Obstacle types: creates
src/geometrydash/model/service/PhaseLoader.java - Audio manager → Audio interface: implements
src/geometrydash/audio/AudioManager.java - Profile service → Profile repository: delegates
src/geometrydash/model/service/PlayerProfileService.java - File profile store → Profile repository: implements
src/geometrydash/model/repository/FilePlayerProfileRepository.java - Profile store adapter → Profile repository: delegates
src/geometrydash/persistence/ProfileStore.java - Profile repository → File profile store: implemented by
src/geometrydash/model/repository/FilePlayerProfileRepository.java