46 lines
1.6 KiB
C++
46 lines
1.6 KiB
C++
// effects.hpp - Constants per a efectes visuals (fireworks, etc.)
|
||
// © 2026 JailDesigner
|
||
|
||
#pragma once
|
||
|
||
#include <SDL3/SDL.h>
|
||
|
||
namespace Defaults::FX::Firework {
|
||
|
||
// Color per defecte. La caller pot fer override (p.ex. heretar del pare),
|
||
// però per defecte no l'heretem — feel més neutre/lluminós.
|
||
constexpr SDL_Color DEFAULT_COLOR = {.r = 255, .g = 255, .b = 255, .a = 255};
|
||
|
||
// Velocitat inicial radial al spawn (px/s) i variació entre punts.
|
||
constexpr float SPEED = 250.0F;
|
||
constexpr float SPEED_VARIATION = 30.0F; // ±
|
||
|
||
// Quantitat de línies per burst (per defecte).
|
||
constexpr int N_POINTS = 100;
|
||
|
||
// Distribució angular: jitter aleatori sobre el repartiment uniforme.
|
||
constexpr float ANGULAR_JITTER_DEG = 12.0F;
|
||
|
||
// Fase 1 (creixement): la línia neix amb longitud 0 i creix fins a max.
|
||
constexpr float GROW_DURATION = 0.08F; // s
|
||
constexpr float MAX_LENGTH = 25.0F; // px
|
||
|
||
// Fricció lineal (px/s²). Negativa per frenar.
|
||
constexpr float FRICTION = -180.0F;
|
||
|
||
// Llindar de mort: per sota d'aquesta longitud (px) o brillor, la
|
||
// partícula es marca inactiva.
|
||
constexpr float MIN_LENGTH = 0.5F;
|
||
constexpr float MIN_BRIGHTNESS = 0.02F;
|
||
|
||
// Brillor inicial per defecte.
|
||
constexpr float INITIAL_BRIGHTNESS = 1.0F;
|
||
|
||
// Restitució en rebot contra els límits del PLAYAREA (mateix patró que debris).
|
||
constexpr float RESTITUTION_BOUNDS = 0.7F;
|
||
|
||
// Mida del pool. 8 punts × ~25 bursts simultanis.
|
||
constexpr int POOL_SIZE = 2000;
|
||
|
||
} // namespace Defaults::FX::Firework
|