How qzlabq/java-2dgame works
This is a Java 2D adventure game with an auxiliary map editor. The main player workflow is to start the game, use keyboard-driven states to explore maps, interact with NPCs and objects, fight monsters, solve the dungeon pressure-plate/iron-door puzzle, defeat the Skeleton Lord, and save progression. Runtime responsibilities span map rendering, entity behavior, events, lighting, UI/cutscenes, and persistence. The README documents the gameplay capabilities; sampled source confirms selected wiring, while unsampled GamePanel and editor code limits confidence about some internal calls.
Main entry points: GamePanel.java Game panel · EventHandler.java World events · MapEditorManager.java Editor windows · Entity.java Entity behavior
Components 23
Game runtime
- Keyboard input
src/main/KeyHandler.java - Game panel
src/main/GamePanel.java - Game launcher
src/main/Main.java
World and exploration
- Tile maps
src/tile/TileManager.java - Map definitions
src/main/MapData.java - World events
src/main/EventHandler.java - Pathfinding
src/ai/PathFinder.java - Lighting
src/environment/EnvironmentManager.java
Actors and combat
- Player
src/entity/Player.java - Entity behavior
src/entity/Entity.java - Monsters
src/monster/MON_SkeletonLord.java - Projectiles
src/entity/Projectile.java - Items and objects
src/object/OBJ_Fireball.java
Progress and presentation
- Save data
src/data/DataStorage.java - Save and load
src/data/SaveLoad.java - Progress flags
src/data/Progress.java - Game UI
src/main/UI.java - Cutscenes
src/main/CutsceneManager.java
Map editing
- Editor windows
src/maptool/MapEditorManager.java - Map editor
src/maptool/MapEditor.java - Editor map model
src/maptool/TileSet.java
Other components
- Player
- Map maker
Connections 23
- Player → Game launcher: starts game
- Game launcher → Game panel: creates and starts
- Player → Keyboard input: presses keys
- Keyboard input → Game panel: changes game state
- Tile maps → Map definitions: reads definitions
- Entity behavior → Pathfinding: searches paths
- Game panel → Player: runs gameplay
- Game panel → Tile maps: uses tile maps
- Game panel → World events: checks events
- Game panel → Lighting: updates lighting
- Game panel → Game UI: renders interface
- Game panel → Save and load: handles saves
- World events → Progress flags: checks boss flag
- World events → Cutscenes: starts boss scene
- Cutscenes → Monsters: wakes boss
- Monsters → Items and objects: drops treasure
- Player → Entity behavior: inherits behavior
- Projectiles → Entity behavior: inherits behavior
- Save and load → Save data: serializes state
- Map maker → Editor windows: opens editor
- Editor windows → Map editor: manages tabs
- Editor windows → Map editor: dispatches save
- Map editor → Editor map model: edits tiles