|This page has links to websites or programs not trusted by Scratch or hosted by Wikipedia. Remember to stay safe while using the internet, as we can't guarantee the safety of other websites.|
There are several methods to make a script perform an action for a set amount of time. This tutorial will cover the simplest of them. Technically, this may not work if you have wait blocks or other blocks that take up time. "Repeat until" loops only check if their condition is true between blocks, therefore adding some imperfection to this method. For example, the glide () secs to x: () y: () block will continue to run even if the condition is met true because the loop only checks between individual blocks.
These timer-based repeater scripts can be used in many different ways. The one pictured is for a sprite that will continuously move to the right for the set amount of time.
when green flag clicked go to x: (x location) y: (y location) reset timer repeat until <(timer) > (limit)> change x by (1) end
- x location is the x of where the sprite goes to before it starts.
- y location is the y of where the sprite goes to before it starts.
- limit is how long the action should be repeated for (e.g. if the limit were 10, the sprite would drift to the right for 10 seconds).
when gf clicked set [seconds v] to  //enter amount of time to repeat for repeat until <(seconds) = > wait (1) secs change [seconds v] by (-1) end when gf clicked repeat until <(seconds) = > . . . end
This method is less accurate than the method below, as all computers take time to process each block.
when gf clicked set [old timer v] to (timer) repeat until <(timer) > ((old timer) + (limit))> . . . end
This method is far more exact, because the timer is correct to ±3500 ms/day, whereas a variable is not always updated at the exact millisecond.