1 USING: accessors game.input game.loop kernel math ui.gadgets
2 ui.gadgets.worlds ui.gestures threads ;
5 TUPLE: game-world < world
7 { tick-slice float initial: 0.0 } ;
9 GENERIC: tick-length ( world -- millis )
12 swap >>tick-slice relayout-1 yield ;
14 M: game-world begin-world
16 dup [ tick-length ] [ ] bi <game-loop> [ >>game-loop ] keep start-loop
19 M: game-world end-world
20 [ [ stop-loop ] when* f ] change-game-loop