Esperar e repetir
Você quer que algo aconteça mais tarde (o tiro recarregar, a bomba explodir) ou de tempos em tempos (um inimigo atirar a cada segundo).
#include <brasa/brasa.hpp>using namespace brasa;
class Bomb : public Entity {public: void onSpawn() override { afterSeconds(3, [this] { destroy(); }); // explode em 3 segundos every(30, [this] { visible = !visible; }); // pisca a cada meio segundo }};BRASA_ENTITY(Bomb);Como funciona
Seção intitulada “Como funciona”- O jogo roda a 60 passos por segundo.
after(60, ...)espera 1 segundo, eafter(30, ...)espera meio. after(passos, ...)executa a lambda uma vez, depois de tantos passos.every(passos, ...)executa sempre, a cada tantos passos.afterSeconds(segundos, ...)é oaftercontado em segundos.- Os temporizadores somem sozinhos quando o objeto é destruído.
Variações
Seção intitulada “Variações”Cancelar. Toda função de temporizador devolve um TimerId. Guarde-o para cancelar depois:
// na classe: TimerId blink_;blink_ = every(30, [this] { visible = !visible; });// ... mais tarde:cancel(blink_);visible = true;Intervalo que muda. Uma função que se agenda de novo com after pode mudar o intervalo a cada vez, como o Spawner do tutorial.
