periodic method

void periodic({
  1. required double time,
  2. required PeriodicCallback onTick,
  3. VoidCallback? onEnd,
})

Implementation

void periodic({
  required double time,
  required PeriodicCallback onTick,
  VoidCallback? onEnd,
}) {
  int phase = 0;
  double currentTime = 0;
  tempCallback(double deltaTime) {
    currentTime += deltaTime;
    if (currentTime >= time) {
      final result = onTick(phase);
      if (result) {
        currentTime = 0;
        phase++;
        return true;
      }

      onEnd?.call();
      return false;
    }
    return true;
  }

  _updates.add(tempCallback);
}