How testgame-team/test2dgame_01 works
Test2DGame is a Java Swing/AWT action-adventure game. The player launches the game, navigates menus and the world with keyboard input, interacts with entities and objects, manages inventory, and sees the result through the game panel’s rendering and UI. GamePanel is the central runtime coordinator; the world, collision, entity, inventory, and presentation systems provide the main gameplay stages, while save slots and sound support additional documented capabilities. The graph follows explicit README and source-index relationships; unsampled subsystem internals are represented without asserting their internal call flow.
Main entry points: GamePanel.java GamePanel coordinator · Entity.java Entity base · AssetSetter.java Entity placement · KeyHandler.java Keyboard controls
Components 22
Game runtime
- Keyboard controls
src/main/KeyHandler.java - GamePanel coordinator
src/main/GamePanel.java - Application entry
src/main/Main.java
World and content
- Entity placement
src/main/AssetSetter.java - World manager
src/world/WorldManager.java - Map data
src/world/WorldMap.java - Tile rendering
src/tile/TileManager.java - Image cache
src/content/AssetManager.java - Map resources
res/maps
Gameplay systems
- Player
src/entity/Player.java - Entity base
src/entity/Entity.java - Old Man NPC
src/entity/NPC_OldMan.java - Green Slime
src/monster/M_GreenSlime.java - World objects
src/object/SuperObject.java - Inventory model
src/inventory/Inventory.java - Item definitions
src/inventory/Item.java - Collision checker
src/main/CollisionChecker.java - World events
src/main/EventHandler.java
UI and audio
- Menus and HUD
src/main/UI.java - Sound playback
src/main/Sound.java
Persistence
- Save slots
src/main/SaveManager.java
Other components
- Player
Connections 30
- Player → Application entry: launches
README.md - Application entry → GamePanel coordinator: creates
src/main/Main.java - Player → Keyboard controls: presses keys
README.md - Keyboard controls → GamePanel coordinator: updates state
src/main/KeyHandler.java - Keyboard controls → Save slots: loads or clears
src/main/KeyHandler.java - GamePanel coordinator → Player: updates and draws
src/main/GamePanel.java - GamePanel coordinator → Entity placement: initializes entities
src/main/GamePanel.java - GamePanel coordinator → Collision checker: uses checks
src/main/GamePanel.java - GamePanel coordinator → World events: creates handler
src/main/GamePanel.java - GamePanel coordinator → World manager: creates manager
src/main/GamePanel.java - GamePanel coordinator → Save slots: creates manager
src/main/GamePanel.java - GamePanel coordinator → Menus and HUD: draws interface
src/main/GamePanel.java - GamePanel coordinator → Sound playback: plays audio
src/main/GamePanel.java - World manager → Map data: loads map
src/world/WorldManager.java - World manager → Map resources: reads resource
- GamePanel coordinator → Tile rendering: creates renderer
src/main/GamePanel.java - Tile rendering → Map data: reads tile IDs
src/tile/TileManager.java - Tile rendering → Image cache: loads tile images
src/tile/TileManager.java - Image cache → Map resources: loads images
- Entity placement → Old Man NPC: creates NPC
src/main/AssetSetter.java - Entity placement → Green Slime: creates monster
src/main/AssetSetter.java - Entity placement → World objects: creates objects
src/main/AssetSetter.java - Old Man NPC → Entity base: extends
src/entity/NPC_OldMan.java - Green Slime → Entity base: extends
src/monster/M_GreenSlime.java - Player → Entity base: extends
src/entity/Player.java - Entity base → Image cache: loads images
src/entity/Entity.java - Entity base → Collision checker: requests checks
src/entity/Entity.java - Player → Inventory model: owns inventory
src/entity/Player.java - Inventory model → Item definitions: stores definitions
src/inventory/Inventory.java - Menus and HUD → Inventory model: displays contents
src/main/UI.java