Ir al contenido
Descargar

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);
  • El juego corre a 60 pasos por segundo. after(60, ...) espera 1 segundo, y after(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 el after contado en segundos.
  • Los temporizadores desaparecen solos cuando el objeto se destruye.

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.