mirror of
https://github.com/Aviortheking/games.git
synced 2025-08-11 21:51:58 +00:00
68
docs/classModel.puml
Normal file
68
docs/classModel.puml
Normal file
@@ -0,0 +1,68 @@
|
||||
@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
|
Reference in New Issue
Block a user