Add orx-timer

This commit is contained in:
Edwin Jakobs
2020-04-08 12:43:26 +02:00
parent d6fa5d7fff
commit fa2a2f54ba
7 changed files with 129 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
package org.openrndr.extra.timer
import kotlinx.coroutines.yield
import org.openrndr.Program
import org.openrndr.launch
fun Program.timeOut(delayInSeconds: Double, action: () -> Unit) = repeat(1.0, 1, delayInSeconds, action)
fun Program.repeat(intervalInSeconds: Double, count: Int? = null, initialDelayInSeconds: Double = 0.0, action: () -> Unit) {
val start = seconds + initialDelayInSeconds
var repetitions = 0
launch {
while (count == null || repetitions < count) {
val launchTime = start + repetitions * intervalInSeconds
while (seconds < launchTime) {
yield()
}
action()
repetitions++
}
}
}