Browse Source

doc: Adding documentation for game example

Matthias Ladkau 3 years ago
parent
commit
b8e080dd26

File diff suppressed because it is too large
+ 35 - 9
examples/game/doc/game.md


BIN
examples/game/doc/display-loop.png


+ 29 - 0
examples/game/doc/display-loop.uxf

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<diagram program="umlet" version="14.3.0">
+  <help_text/>
+  <zoom_level>9</zoom_level>
+  <element>
+    <id>UMLSequenceAllInOne</id>
+    <coordinates>
+      <x>63</x>
+      <y>243</y>
+      <w>1377</w>
+      <h>450</h>
+    </coordinates>
+    <panel_attributes>title=Display loop in the frontend
+obj=game/game-controller.ts\nupdatePushHandler~a
+obj=game/objects.ts\nPlayer~b
+obj=game/objects.ts\nSprite~c
+obj=display/engine.ts\nMainDisplayController:drawLoop()~d
+obj=display/engine.ts\nMainDisplayController~e
+gate-&gt;a:Websocket messages
+a-&gt;b:setState()
+a-&gt;c:setState()
+d-&gt;e:drawSprites()
+d-&gt;e:drawPlayer()
+d-&gt;e:drawInfoOverlay()
+d-&gt;d+:drawLoop() (using setTimeout)
+</panel_attributes>
+    <additional_attributes/>
+  </element>
+</diagram>

BIN
examples/game/doc/fire-shot.png


+ 30 - 0
examples/game/doc/fire-shot.uxf

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<diagram program="umlet" version="14.3.0">
+  <help_text/>
+  <zoom_level>8</zoom_level>
+  <element>
+    <id>UMLSequenceAllInOne</id>
+    <coordinates>
+      <x>0</x>
+      <y>240</y>
+      <w>1432</w>
+      <h>472</h>
+    </coordinates>
+    <panel_attributes>title=Firing a shot
+obj=display/default.ts\nDefaultEngineEventHandler:onkeydown()~a 
+obj=game/objects.ts\nPlayer~b
+obj=main.ecal\nsink WebSocketHandler~c
+obj=engine.ecal\nexecuteAction()~e
+obj=templates.ecal\nPlayerState~d
+gate-&gt;a:The user presses &lt;space&gt;
+a-&gt;b:stateUpdate(action='fire')
+b-&gt;c:send state update to websocket (action='fire')
+c-&gt;d:set property action='fire'
+gate-&gt;e:Game loop
+e-&gt;d:doAction()
+d-&gt;gate:Add shot sprite to model
+d-&gt;gate:Send audio event to all clients
+</panel_attributes>
+    <additional_attributes/>
+  </element>
+</diagram>

BIN
examples/game/doc/game-loop.png


+ 28 - 0
examples/game/doc/game-loop.uxf

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<diagram program="umlet" version="14.3.0">
+  <help_text/>
+  <zoom_level>8</zoom_level>
+  <element>
+    <id>UMLSequenceAllInOne</id>
+    <coordinates>
+      <x>128</x>
+      <y>216</y>
+      <w>1392</w>
+      <h>336</h>
+    </coordinates>
+    <panel_attributes>title=Game loop in the backend
+obj=engine.ecal\nmoveLoop()~a 
+obj=engine.ecal\nmoveObject()~b
+obj=engine.ecal\nexecuteAction()~c
+obj=engine.ecal\ncollisionDetection()~d
+obj=game/game-controller.ts\nupdatePushHandler()~e
+gate-&gt;a:Pulse trigger main.gameloop
+a-&gt;b:loop over game objects
+a-&gt;c:loop over game objects
+b-&gt;e:send state update to all websockets
+a-&gt;d:loop over game objects
+a-&gt;e:send object removals to all websockets
+</panel_attributes>
+    <additional_attributes/>
+  </element>
+</diagram>