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); |
Observaciones
Sección titulada «Observaciones»TimerIdidentifica el temporizador. UnTimerIdvacío tienevalue == 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.
