From Test-Scratch-Wiki

This tutorial explains how to make a custom timer that can be paused and restarted.

Programming

Three variables are needed:

  • "(myTimer)"

— the custom timer

  • "(timeStopped)"

— the timer to be incremented while the custom timer is paused

  • "(isStopped?)"

— a boolean that determines whether the custom timer is paused

Three broadcasts are used:

  • "reset"

— resets all counters

  • "stop"

— pauses the custom timer

  • "start"

— starts the custom timer

when gf clicked
broadcast [reset v] //only include this if you would like the timer to be reset upon the green flag being clicked
forever
    if <(isStopped?) = [1]> then //if the timer is stopped
        set [timeStopped v] to ((timer) - (myTimer)) //the time stopped is equal to the value of the timer minus the value of the custom timer
    else //if the timer is not stopped
        set [myTimer v] to ((timer) - (timeStopped)) //the custom timer's value is equal to the timer's value minus the time stopped
    end
end

when I receive [reset v] //reset all counters without disturbing "isStopped?"
reset timer
set [myTimer v] to [0]
set [timeStopped v] to [0]

when I receive [stop v]
set [isStopped? v] to [1] //have the timer be stopped

when I receive [start v]
set [isStopped? v] to [0] //have the timer be unstopped

Example Uses

A few possible uses for a stoppable timer include:

  • A racing game
  • Timed events
  • Pausing while using a timer
Cookies help us deliver our services. By using our services, you agree to our use of cookies.