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
|