Ir al contenido
Descargar

Temporizadores

Los temporizadores ejecutan una función más tarde. Cuentan en pasos: 60 pasos = 1 segundo.

Función Qué hace Ejemplo
TimerId after(int steps, std::function<void()> fn) Llama a fn una vez, dentro de steps pasos (como mínimo 1). after(30, [this] { visible = true; });
TimerId every(int steps, std::function<void()> fn) Llama a fn cada steps pasos, hasta que se cancele o se destruya la instancia. every(60, [this] { spawn<Bullet>(x, y, "Instancias"); });
TimerId afterSeconds(float seconds, std::function<void()> fn) Igual que after, en segundos. afterSeconds(2.5f, [this] { destroy(); });
void cancel(TimerId id) Cancela un temporizador de esta instancia. Funciona incluso dentro del propio temporizador. cancel(blink_);
TimerId tween(float from, float to, float seconds, std::function<void(float)> apply, Ease ease = Ease::Linear) Lleva un valor de from a to en seconds segundos, llamando a apply en cada paso. Ease::Out frena al final; también hay In, InOut y Back. tween(y, y - 20, 0.3f, [this](float v) { y = v; }, Ease::Out);
  • TimerId identifica el temporizador. Un TimerId vacío tiene value == 0.
  • Los temporizadores se ejecutan al principio del paso, antes del onUpdate.
  • Cuando la instancia se destruye, sus temporizadores desaparecen con ella.
  • El [this] en la lambda permite usar las variables y funciones de la instancia. Mira Lambdas.

Mira Esperar y repetir para ver ejemplos.