cnam-geometry-dash/Documentation/UML/class-diagram.puml

94 lines
1.6 KiB
Plaintext
Raw Normal View History

2024-12-02 10:11:11 +01:00
@startuml Geometry Dash - Diagramme de classe
skinparam style strictuml
skinparam classAttributeIconSize 0
skinparam classFontStyle Bold
hide enum methods
2025-02-03 15:35:36 +01:00
class Player {
{field} + JUMP_FORCE: Double {readOnly}
{field} + SPEED: Double {readOnly}
{field} + SPEED: Double {readOnly}
2024-12-02 10:11:11 +01:00
2025-02-03 15:35:36 +01:00
{method} + jump()
{method} + isJumping(): boolean
{method} + OnCollisionEnter2D(collision : Collision2D)
{method} + OnCollisionExit2D(collision : Collision2D)
2024-12-02 10:11:11 +01:00
}
2025-02-03 15:35:36 +01:00
abstract class LevelElement {
{field} + x: Integer
{field} + y: Integer
{method} + getImagePath(): String {abstract}
}
class Obstacle extends LevelElement {
2024-12-02 10:11:11 +01:00
}
2025-02-03 15:35:36 +01:00
class Platform extends Obstacle {
2024-12-02 10:11:11 +01:00
}
2025-02-03 15:35:36 +01:00
class Spike extends Obstacle {
2024-12-02 10:11:11 +01:00
2025-02-03 15:35:36 +01:00
}
class Portal extends LevelElement {
2024-12-02 10:11:11 +01:00
}
2025-02-03 15:35:36 +01:00
class Bumper extends LevelElement {
2024-12-02 10:11:11 +01:00
}
2025-02-03 15:35:36 +01:00
class LevelEnd extends LevelElement {
}
abstract class Level {
{field} + jsonPath: String
{field} + name: String
{field} + musicPath: String
{field} + progression: Integer
{field} + totalJumps: Integer
{field} + totalAttempts: Integer
{field} + killedCount: Integer
{method} + placeElements()
{method} + placeElement(levelElement: LevelElement) {static}
}
class LevelStats extends Stats {
}
class LevelFactory {
{method} + createLevel(jsonPath): Level
}
class Game {
}
Level *--> "- *\nLevelElements" LevelElement : <<Owns>>
Game *--> "- *\nlevels" Level : <<Owns>>
Game *--> "- 1\nlevels" LevelFactory : <<Owns>>
' {
' "name": "Back on Track",
' "music"
' "elements": [
' {
' "type": "Spike",
' "position": {
' "x": 0,
' "y": 0
' },
' }
' ]
' }
2024-12-02 10:11:11 +01:00
@enduml