feat(playfield): reaccions orbit al pas de la nau i pulse al spawn de fireworks
This commit is contained in:
1 parent
ffeff3d69d
commit
20f5b83649
6 files changed
+238
-13
No files matched your search
@@ -6,6 +6,8 @@
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
#include <array>
|
||||
#include <functional>
|
||||
#include <utility>
|
||||
|
||||
#include "core/defaults.hpp"
|
||||
#include "core/rendering/render_context.hpp"
|
||||
@@ -18,8 +20,15 @@ namespace Effects {
|
||||
// d'`origen`. Cada partícula viu independent (update/draw/rebot).
|
||||
class FireworkManager {
|
||||
public:
|
||||
// Notificació opcional cada vegada que es genera un burst.
|
||||
using SpawnCallback = std::function<void(Vec2 origen)>;
|
||||
|
||||
explicit FireworkManager(Rendering::Renderer* renderer);
|
||||
|
||||
void setSpawnCallback(SpawnCallback callback) {
|
||||
spawn_callback_ = std::move(callback);
|
||||
}
|
||||
|
||||
// Emet un burst radial:
|
||||
// origen: punt central del burst.
|
||||
// color: color de les línies (heretat del pare).
|
||||
@@ -40,6 +49,7 @@ namespace Effects {
|
||||
|
||||
private:
|
||||
Rendering::Renderer* renderer_;
|
||||
SpawnCallback spawn_callback_;
|
||||
|
||||
static constexpr int POOL_SIZE = Defaults::FX::Firework::POOL_SIZE;
|
||||
std::array<Firework, POOL_SIZE> pool_;
|
||||
|
||||
Reference in new issue
Block a user