Last updated: 19 Jan 24 19:52:43 (UTC)
Timing gameplay (e.g. escape room)
Start button:
<<button "start">> <<set $startTime to Date.now()>> <<set $stDisplay to new Date()>> <<goto [[Q1]]>> <</button>>
<<button "start">>
<<set $startTime to Date.now()>>
<<set $stDisplay to new Date()>>
<<goto [[Q1]]>>
<</button>>End button:
<<button “end”>> <<set $endTime to Date.now()>> <<set $enDisplay to new Date()>> <<set $seconds = 1000>> <<set $minutes = 1000 * 60>> <<set $timeMs = $endTime - $startTime>> <<set $timeMin = $timeMs / $minutes>> <<set $min = Math.trunc($timeMin)>> <<set $s = $timeMin - $min>> <<set $sec = $s * 60>> <<goto [[results]]>> <</end>>
<<button “end”>>
<<set $endTime to Date.now()>>
<<set $enDisplay to new Date()>>
<<set $seconds = 1000>>
<<set $minutes = 1000 * 60>>
<<set $timeMs = $endTime - $startTime>>
<<set $timeMin = $timeMs / $minutes>>
<<set $min = Math.trunc($timeMin)>>
<<set $s = $timeMin - $min>>
<<set $sec = $s * 60>>
<<goto [[results]]>>
<</end>>Show results:
You made it out in $min minutes and $sec second<<if $sec > 1>>s<</if>>! Your start time: $stDisplay Your end time: $enDisplay
You made it out in $min minutes and $sec second<<if $sec > 1>>s<</if>>!
Your start time: $stDisplay
Your end time: $enDisplayIncluding a count-up timer on screen:
In a “PassageHeader” (or footer, I suppose) passage:
<span id="minutes">00</span>:<span id="seconds">00</span> <hr> <<silently>> <<repeat 1s>> <<if $mcounter < 6>> <<set $scounter += 1>> <<if $scounter >= 0 && $scounter <= 9>> <<replace "#seconds">>0$scounter<</replace>> <<elseif $scounter >=10 && $scounter <= 59>> <<replace "#seconds">>$scounter<</replace>> <<elseif $scounter == 60>> <<set $scounter to 0>> <<set $mcounter += 1>> <<replace "#seconds">>00<</replace>> <<if $mcounter >= 0 && $mcounter <= 9>> <<replace "#minutes">>0$mcounter<</replace>> <<elseif $mcounter >=10 && $mcounter <= 59>> <<replace "#minutes">>$mcounter<</replace>> <<elseif $mcounter == 60>> <<set $tTime = 3600>> <<goto [[results]]>> <</if>> <</if>> <<else>> <<stop>> <</if>> <</repeat>> <</silently>>
<span id="minutes">00</span>:<span id="seconds">00</span>
<hr>
<<silently>>
<<repeat 1s>>
<<if $mcounter < 6>>
<<set $scounter += 1>>
<<if $scounter >= 0 && $scounter <= 9>>
<<replace "#seconds">>0$scounter<</replace>>
<<elseif $scounter >=10 && $scounter <= 59>>
<<replace "#seconds">>$scounter<</replace>>
<<elseif $scounter == 60>>
<<set $scounter to 0>>
<<set $mcounter += 1>>
<<replace "#seconds">>00<</replace>>
<<if $mcounter >= 0 && $mcounter <= 9>>
<<replace "#minutes">>0$mcounter<</replace>>
<<elseif $mcounter >=10 && $mcounter <= 59>>
<<replace "#minutes">>$mcounter<</replace>>
<<elseif $mcounter == 60>>
<<set $tTime = 3600>>
<<goto [[results]]>>
<</if>>
<</if>>
<<else>>
<<stop>>
<</if>>
<</repeat>>
<</silently>>On the button that starts the game, add:
<<button … <<set $scounter to 0>> <<set $mcounter to 0>> <</button>>
<<button …
<<set $scounter to 0>>
<<set $mcounter to 0>>
<</button>>