Esperar y repetir
Quieres que algo ocurra más tarde (que el disparo se recargue, que la bomba explote) o cada cierto tiempo (que un enemigo dispare cada segundo).
#include <brasa/brasa.hpp>using namespace brasa;
class Bomb : public Entity {public: void onSpawn() override { afterSeconds(3, [this] { destroy(); }); // explota en 3 segundos every(30, [this] { visible = !visible; }); // parpadea cada medio segundo }};BRASA_ENTITY(Bomb);Cómo funciona
Sección titulada «Cómo funciona»- El juego corre a 60 pasos por segundo.
after(60, ...)espera 1 segundo, yafter(30, ...)espera medio. after(pasos, ...)ejecuta la lambda una vez, después de esa cantidad de pasos.every(pasos, ...)la ejecuta siempre, cada tantos pasos.afterSeconds(segundos, ...)es elaftercontado en segundos.- Los temporizadores desaparecen solos cuando el objeto se destruye.
Variaciones
Sección titulada «Variaciones»Cancelar. Toda función de temporizador devuelve un TimerId. Guárdalo para cancelar después:
// en la clase: TimerId blink_;blink_ = every(30, [this] { visible = !visible; });// ... más tarde:cancel(blink_);visible = true;Intervalo que cambia. Una función que se vuelve a programar con after puede cambiar el intervalo cada vez, como el Spawner del tutorial.
