mirror of
https://github.com/Aviortheking/games.git
synced 2025-04-24 11:52:09 +00:00
69 lines
1.0 KiB
Plaintext
69 lines
1.0 KiB
Plaintext
@startuml classes
|
|
!theme toy
|
|
|
|
class GameEngine {
|
|
- scenes: Record<string, Scene>
|
|
|
|
+ addScene(scene: Scene): void
|
|
+ setScene(id: string): void
|
|
+ removeScene(scene: string | Scene): void
|
|
+ start(): void
|
|
+ pause(): void
|
|
+ destroy(): void
|
|
}
|
|
|
|
class Scene {
|
|
+ id: string
|
|
|
|
+ setCamera(id: String): void
|
|
+ addComponents(components: ...Component2D): void
|
|
+ removeComponents(components: ...(Component2D | string)): void
|
|
}
|
|
|
|
GameEngine "1" -- "0-*" Scene : "contains"
|
|
|
|
class Component {
|
|
+ id: string
|
|
+ position: Vector2D
|
|
+ renderer: Renderer
|
|
+ position: Vector2D
|
|
+ scale: Vector2D
|
|
+ collider: Collider
|
|
+ origin: Vector2D
|
|
+ childs: Array<Component2D>
|
|
+ debug: boolean
|
|
|
|
+ init(): void
|
|
+ update(): void
|
|
}
|
|
|
|
Scene "1" -- "0-*" Component : "contains"
|
|
|
|
class Camera extends Component {
|
|
|
|
}
|
|
|
|
class Pointer extends Component {}
|
|
|
|
class Asset {}
|
|
|
|
class Sound {}
|
|
|
|
class Tileset {}
|
|
|
|
Component -- Component
|
|
Tileset -- Asset
|
|
|
|
class Vector2D {
|
|
+ x: number
|
|
+ y: number
|
|
}
|
|
|
|
class Collider {}
|
|
|
|
Component "1" -- "0-1" Collider
|
|
|
|
Component "1" -- "0-*" Vector2D
|
|
|
|
@enduml
|