Difference between revisions of "Repeat"
(description) |
(Restructure Repeat article) |
||
Line 1: | Line 1: | ||
'''Repeat''' is a [[Response]] which repeats other responses. | |||
== | ==Repeat N times== | ||
'''Repeat N times''' immediately repeats the enclosed responses a fixed number of times. | |||
For example, you might have a [[Rule]] which drops three apples out of a tree. One way to do this would be to write three responses: '''Create apple''', '''Create apple''', '''Create apple'''. Instead, you could write '''Repeat 3 times: Create apple'''. Both approaches do the same thing, but the second one is easier to read, and easier to change later. | |||
Note that '''N''' can be an [[Expression]]. For example, you could use the '''Value of a variable''' expression to write: '''Repeat $apples times: Create apple'''. | |||
Repeat | == Repeat every N seconds == | ||
'''Repeat every N seconds''' repeats the enclosed responses forever, but waits for a fixed time interval in between each repeat. | |||
For example, to create a rain drop every half second, you could write: '''Repeat every 0.5 seconds: Create rain drop'''. | |||
Repeat every | |||
Repeat every | Instead of seconds, you can optionally use units from the [[Clock]]. For example, to move an actor downward on every beat, you could write: '''Repeat every 1 beat: Set Y position to 1 (relative)'''. | ||
== Repeat every frame == | |||
Sometimes it can be useful to repeat logic as fast as possible over time. Currently, the best way to do this is to use '''Repeat every N seconds''' with the minimum possible value for '''N''', which is bounded at 0.0167 (1/60). | |||
== Stop repeating == | |||
Use the '''Stop Repeating''' [[Response]] to stop repeating. This will prematurely break out of a '''Repeat N Times''', and it is the only way to exit a '''Repeat every'''. | |||
Repeats are also interrupted at the next iteration if the owning [[Actor]] is destroyed. | |||
== Count the number of repeats == | |||
It can be useful to know how many repeats have happened so far. For example, you might want to create a row of cheeseburgers without having any of the cheeseburgers overlap. You can use the '''Number of repeats finished''' [[Expression]] for this: | |||
'''Repeat 5 times: Create Cheeseburger at relative position (The number of repeats finished, 0)'''. | |||
This will create cheeseburgers at (0, 0), (1, 0), (2, 0), (3, 0) and (4, 0). | |||
# | # |
Revision as of 17:06, 12 May 2022
Repeat is a Response which repeats other responses.
Repeat N times
Repeat N times immediately repeats the enclosed responses a fixed number of times.
For example, you might have a Rule which drops three apples out of a tree. One way to do this would be to write three responses: Create apple, Create apple, Create apple. Instead, you could write Repeat 3 times: Create apple. Both approaches do the same thing, but the second one is easier to read, and easier to change later.
Note that N can be an Expression. For example, you could use the Value of a variable expression to write: Repeat $apples times: Create apple.
Repeat every N seconds
Repeat every N seconds repeats the enclosed responses forever, but waits for a fixed time interval in between each repeat.
For example, to create a rain drop every half second, you could write: Repeat every 0.5 seconds: Create rain drop.
Instead of seconds, you can optionally use units from the Clock. For example, to move an actor downward on every beat, you could write: Repeat every 1 beat: Set Y position to 1 (relative).
Repeat every frame
Sometimes it can be useful to repeat logic as fast as possible over time. Currently, the best way to do this is to use Repeat every N seconds with the minimum possible value for N, which is bounded at 0.0167 (1/60).
Stop repeating
Use the Stop Repeating Response to stop repeating. This will prematurely break out of a Repeat N Times, and it is the only way to exit a Repeat every.
Repeats are also interrupted at the next iteration if the owning Actor is destroyed.
Count the number of repeats
It can be useful to know how many repeats have happened so far. For example, you might want to create a row of cheeseburgers without having any of the cheeseburgers overlap. You can use the Number of repeats finished Expression for this:
Repeat 5 times: Create Cheeseburger at relative position (The number of repeats finished, 0).
This will create cheeseburgers at (0, 0), (1, 0), (2, 0), (3, 0) and (4, 0).