How calab/wingline works
Wingline is a first-person Flappy Bird-style game. The player starts from the title screen, steers through increasingly difficult wall openings, and sees run results and saved best/last-run markers. The main runtime separates screen/input orchestration, world simulation, rendering, and theme/settings resources. The excerpts establish theme loading, world creation, rendering calls, and settings persistence; unsampled loop details are not used to assert additional call edges.
Main entry points: game.py Game Controller · config.py Game Configuration · renderer.py Scene Renderer · resources.py Theme Loader
Components 13
Game Runtime
- Game Entry
main.py - Game Controller
flappy/game.py - Screens and Input
flappy/game.py - Game Configuration
flappy/config.py
World Simulation
- World Simulation
flappy/world.py - Wall Rules
flappy/world.py - Lives and Stats
flappy/world.py
Presentation
- Scene Renderer
flappy/renderer.py - HUD and Guides
flappy/renderer.py
Themes and Settings
- Theme Loader
flappy/resources.py - Theme Assets
resources/themes - Settings Store
flappy/resources.py
Other components
- Player
Connections 13
- Player → Game Entry: starts game
README.md - Game Entry → Game Controller: runs
main.py - Game Controller → Theme Loader: loads themes
flappy/game.py - Game Controller → World Simulation: creates world
flappy/game.py - Game Controller → Scene Renderer: draws screens
flappy/game.py - Game Controller → Settings Store: saves run markers
flappy/game.py - Theme Loader → Theme Assets: loads assets
flappy/resources.py - Theme Loader → Settings Store: reads settings
flappy/resources.py - Settings Store → Game Configuration: uses settings path
flappy/resources.py - Scene Renderer → HUD and Guides: draws HUD
flappy/renderer.py - Game Controller → Game Configuration: uses game constants
flappy/game.py - World Simulation → Game Configuration: uses rule constants
flappy/world.py - Scene Renderer → Game Configuration: uses render constants
flappy/renderer.py