feat(border): bump del border per explosions properes a la paret

This commit is contained in:
JailDesigner committed 2026-05-21 22:48:49 +02:00
1 parent e678f8d538
commit a44748c0c4
4 files changed
+35

No files matched your search

+5
View File
@@ -65,6 +65,11 @@ namespace Effects {
// Reproducir sonido de explosión
Audio::get()->playSound(sound, Audio::Group::GAME);
// Notificar als subscriptors (border, playfield, etc.).
if (explosion_callback_) {
explosion_callback_(centro);
}
const Vec2& shape_centre = shape->getCenter();
// Multiplier: cada segment s'emet N vegades amb direccions aleatòries
+11
View File
@@ -6,6 +6,7 @@
#include <SDL3/SDL.h>
#include <array>
#include <functional>
#include <memory>
#include <utility>
#include <vector>
@@ -22,8 +23,17 @@ namespace Effects {
// Manté un pool de objectes Debris i gestiona el seu cicle de vida
class DebrisManager {
public:
// Notificació opcional cada vegada que es genera una explosió. El
// consumidor pot usar-la per fer reaccionar elements del fons (border
// bumps, pulse del playfield, etc.).
using ExplosionCallback = std::function<void(Vec2 center)>;
explicit DebrisManager(Rendering::Renderer* renderer);
void setExplosionCallback(ExplosionCallback callback) {
explosion_callback_ = std::move(callback);
}
// Crear explosión a partir de una shape
// - shape: shape vectorial a explode
// - centro: posición del centro de l'objecte
@@ -66,6 +76,7 @@ namespace Effects {
private:
Rendering::Renderer* renderer_;
ExplosionCallback explosion_callback_;
// Pool de fragments (màxim concurrent)
// Pentàgon 5 línies × 15 enemics × multiplier 3 = 225 trossos només d'enemics.