diff --git a/extra/game/loop/loop-docs.factor b/extra/game/loop/loop-docs.factor index ea520af8a4..cd8660e465 100644 --- a/extra/game/loop/loop-docs.factor +++ b/extra/game/loop/loop-docs.factor @@ -2,6 +2,10 @@ USING: help.markup help.syntax kernel math ui.gadgets.worlds ; IN: game.loop +HELP: fps +{ $values { "fps" real } { "micros" integer } } +{ $description "Converts a frames per second value into an interval length in microseconds." } ; + HELP: { $values { "tick-interval-micros" integer } { "delegate" "a " { $link "game.loop-delegates" } } diff --git a/extra/game/loop/loop.factor b/extra/game/loop/loop.factor index 80753e4e40..afe011cb7b 100644 --- a/extra/game/loop/loop.factor +++ b/extra/game/loop/loop.factor @@ -39,6 +39,9 @@ TUPLE: game-loop-error game-loop error ; : game-loop-error ( game-loop error -- ) [ drop stop-loop ] [ \ game-loop-error boa ?ui-error ] 2bi ; +: fps ( fps -- micros ) + 1,000,000 swap /i ; inline +