diff --git a/uml-pong_reloaded.drawio.svg b/uml-pong_reloaded.drawio.svg new file mode 100644 index 0000000..988713e --- /dev/null +++ b/uml-pong_reloaded.drawio.svg @@ -0,0 +1,4 @@ + + + +

Menu

attributes
+ title: string
+ options: vector~string~
+ selectedIndex: int
operations
+ Menu(string menuTitle, vector~string~ menuOptions)
+ Update(): int
+ Draw(): void

GameContext
{struct}
attributes
+ currentState: GameState
+ score: ScoreBoard 
+ config: GameConfig
+ courtBackground: Texture2D
+ wallsTexture: Texture2D 
+ lineTexture: Texture2D  
+ paddleHitSound: Sound
+ wallHitSound: Sound 
+ scoreSound: Sound 

Paddle
attributes
+ width: float  
+ height: float  
+ texture: Texture2D   
operations
+ Paddle(pos, c, w, h, tex) 
+ ~Paddle()   
+ Update() : bool  
+ Draw() : void    
+ ReloadTexture(resId) : void
 
attributes
+ radius: float  
+ velocity: Vector2 
+ texture: Texture2D   
operations
+ Ball(pos, c, r, tex) 
+ ~Ball() 
+ Update() : bool   
+ Draw() : void    
+ ReloadTexture(resId) : void

ScoreBoard
{struct}
attributes
+ player_score: int
+ player2_score: int
+ cpu_score: int

GameConfig
{struct}
attributes
+ resolutionOption: int
+ framerateOption: int
+ isFullscreen: bool
+ maxScoreOption: int
+ maxScore: int
+ sfxEnabled: bool
+ spaceThemeOption: int
+ ballThemeOption: int
 + paddleThemeOption: int
 + selectedSettingLine: int

GameState
{enumeration}
attributes
+ MainMenu
+ DifficultySelect
+ MultiplayerLobby
+ Multiplayer
+ Settings
+ Playing
+ Paused
+ GameOver

CpuPaddle
attributes
+ width: float  
+ height: float  
+ texture: Texture2D   
operations
+ Paddle(pos, c, w, h, tex) 
+ ~Paddle()   
+ Update() : bool  
+ Draw() : void    
+ ReloadTexture(resId) : void

Difficulty
{enumeration}
attributes
+ Easy
+ Normal
+ Hard
uses

GameObjects
{abstract}
attributes
+ position: Vector2 
+ color: Color   
operations
+ GameObject(pos, c)  
+ ~GameObject()  
+ Update() : bool   
+ Draw() : void    
contains
tracks current
contains
\ No newline at end of file