How jeon0121/castlevania works
This repository is a Castlevania-style, side-scrolling action game. The player enters through the application loop, which selects and starts a title, stage, or game-over scene; during play, scenes coordinate the character, level geometry, pickups, enemies, and HUD as the player advances. The README also documents stage environments, collision, enemy drops, weapons, and audio. Sampled source confirms application/scene dispatch and several gameplay interactions; some stage-specific wiring is unsampled, so those links are omitted.
Main entry points: App.cpp App state manager · Scene.cpp Scene coordinator · EnemiesManager.cpp Enemy manager · Menu.cpp Status HUD
Components 21
Game runtime
- Application loop
src/main.cpp - App state manager
src/App.cpp - Background music
include/App.hpp
Scenes and stages
- Scene coordinator
src/State/Scene.cpp - Title screen
src/State/Title.cpp - Stage 0
src/State/Stage0.cpp - Stage 1
src/State/Stage1.cpp - Stage 2A
src/State/Stage2a.cpp - Stage 2B
src/State/Stage2b.cpp - Stage 3
src/State/Stage3.cpp - Game over
src/State/GG.cpp
Player and level
- Character control
src/Object/Character.cpp - Level geometry
include/Object/Block.hpp - Level objects
include/Object
Enemies and combat
- Enemy manager
src/Object/EnemiesManager.cpp - Enemy behaviors
include/Object/Enemies - Phantom Bat boss
src/Object/Boss/PhantomBat.cpp
Items and interface
- Loot and drops
src/Object/Loot.cpp - Whip and subweapons
include/Object/Subweapon - Status HUD
src/State/Menu.cpp
Other components
- Player
Connections 28
- Player → Application loop: plays
- Application loop → App state manager: runs lifecycle
- App state manager → Scene coordinator: starts and updates
- App state manager → Title screen: selects scene
- App state manager → Stage 0: selects scene
- App state manager → Stage 1: selects scene
- App state manager → Stage 2A: selects scene
- App state manager → Stage 2B: selects scene
- App state manager → Stage 3: selects scene
- App state manager → Game over: selects scene
- App state manager → Status HUD: creates and updates
- App state manager → Background music: controls playback
- Scene coordinator → Character control: updates gameplay
- Scene coordinator → Level geometry: checks collisions
- Scene coordinator → Level objects: updates objects
- Scene coordinator → Enemy manager: updates enemies
- Scene coordinator → Whip and subweapons: creates and uses
- Scene coordinator → Loot and drops: updates pickups
- Scene coordinator → Status HUD: updates status
- Enemy manager → Enemy behaviors: manages behavior
- Enemy manager → Character control: checks collisions
- Enemy manager → Level geometry: passes collision blocks
- Enemy manager → Loot and drops: creates drops
- Enemy manager → Status HUD: updates health
- Phantom Bat boss → Character control: checks attacks
- Phantom Bat boss → Status HUD: updates health
- Loot and drops → Character control: applies pickup
- Loot and drops → Status HUD: updates item status