diff options
author | WBoerenkamps <wrj.boerenkamps@student.avans.nl> | 2024-10-26 08:51:31 +0200 |
---|---|---|
committer | WBoerenkamps <wrj.boerenkamps@student.avans.nl> | 2024-10-26 08:51:31 +0200 |
commit | cf7a38d87164a9be78efd8c045acd43422a1be04 (patch) | |
tree | cb9e4514bc6289dda1dd0fbc23448f2ca8fb37b5 /img | |
parent | b935677c8bd2bbda35c08b50caabb952f79e8e0b (diff) |
design gameloop, design
Diffstat (limited to 'img')
-rw-r--r-- | img/event-uml.drawio.png | bin | 0 -> 217362 bytes | |||
-rw-r--r-- | img/gameloop-class.puml | 35 | ||||
-rw-r--r-- | img/gameloop-flow.puml | 27 |
3 files changed, 62 insertions, 0 deletions
diff --git a/img/event-uml.drawio.png b/img/event-uml.drawio.png Binary files differnew file mode 100644 index 0000000..9eab458 --- /dev/null +++ b/img/event-uml.drawio.png diff --git a/img/gameloop-class.puml b/img/gameloop-class.puml new file mode 100644 index 0000000..c9d7917 --- /dev/null +++ b/img/gameloop-class.puml @@ -0,0 +1,35 @@ +@startuml +class LoopManager { + +static LoopManager& getInstance() + + +void loop() + +void setup() + -void render() + -void processInput() + -void fixedUpdate() + -void update() + -bool gameRunning + -LoopManager() +} + +class LoopTimer { + +static LoopTimer& getInstance() + +void start() + +void update() + +float getLag() + +float getFixedDeltaTime() + +void advanceFixedUpdate() + +void enforceFrameRate() + +float getDeltaTime() + -float lag + -float fixedDeltaTime + -float deltaTime +} + +LoopManager --> LoopTimer : uses +LoopManager : loop() +LoopManager : |-- processInput() +LoopManager : |-- fixedUpdate() +LoopManager : |-- update() +LoopManager : |-- render() +@enduml diff --git a/img/gameloop-flow.puml b/img/gameloop-flow.puml new file mode 100644 index 0000000..1a46cd7 --- /dev/null +++ b/img/gameloop-flow.puml @@ -0,0 +1,27 @@ +@startuml +title Game Loop Flowchart + +start + +:Initialize LoopManager; +:Start LoopTimer; + +repeat + :Update LoopTimer; + :Check for Events; + :Process Input; + + while (Lag >= Fixed Delta Time?) is (yes) + :Perform Fixed Update; + :Advance Fixed Update; + endwhile + + :Perform Normal Update; + :Render Frame; + +repeat while (Game Running?) + +:Game exit logic; + +stop +@enduml |