feat(debris): modelo INTACTO→MENGUANDO→0 (sin pop, fade-out por tamaño)
This commit is contained in:
@@ -25,15 +25,17 @@ namespace Defaults::Physics {
|
||||
constexpr float ACCELERACIO = -60.0F; // Fricció/desacceleració (px/s²)
|
||||
constexpr float ROTACIO_MIN = 0.1F; // Rotación mínima (rad/s ~5.7°/s)
|
||||
constexpr float ROTACIO_MAX = 0.3F; // Rotación màxima (rad/s ~17.2°/s)
|
||||
constexpr float TEMPS_VIDA = 2.0F; // Vida mínima garantida (s) — després pot morir per velocitat baixa
|
||||
constexpr float TEMPS_VIDA_NAU = 3.0F; // Ship debris min lifetime (matches DEATH_DURATION)
|
||||
constexpr float SHRINK_RATE = 0.5F; // Reducció de mida (factor sobre min_lifetime)
|
||||
|
||||
// Política de mort: passat el min_lifetime, el fragment mor quan la
|
||||
// seva velocity cau per sota d'aquest llindar. Així els fragments
|
||||
// ràpids no "popen" en moviment.
|
||||
constexpr float MIN_SPEED_TO_DIE = 5.0F; // px/s — al cuadrat per evitar sqrt en update
|
||||
constexpr float MIN_SPEED_TO_DIE_SQ = MIN_SPEED_TO_DIE * MIN_SPEED_TO_DIE;
|
||||
// Política de mort en dos fases:
|
||||
// 1. INTACTE: size_factor = 1.0 durant INTACT_TIME segons. Si la velocity
|
||||
// cau per sota de SHRINK_SPEED_THRESHOLD abans, dispara la transició
|
||||
// (el que arribi primer).
|
||||
// 2. MENGUANT: size_factor decreix linealment a SHRINK_RATE per segon
|
||||
// fins arribar a 0 → el fragment mor (mai "popa" en moviment).
|
||||
constexpr float INTACT_TIME = 2.0F; // Default temps intacte (s)
|
||||
constexpr float SHRINK_SPEED_THRESHOLD = 30.0F; // Velocity sota la qual dispara la mengua (px/s)
|
||||
constexpr float SHRINK_SPEED_THRESHOLD_SQ = SHRINK_SPEED_THRESHOLD * SHRINK_SPEED_THRESHOLD;
|
||||
constexpr float SHRINK_RATE = 1.0F; // 1/s = 1 segon per encongir de 100% a 0%
|
||||
|
||||
// Herència de velocity angular (trayectorias curvas)
|
||||
constexpr float FACTOR_HERENCIA_MIN = 0.7F; // Mínimo 70% del drotacio heredat
|
||||
@@ -49,7 +51,7 @@ namespace Defaults::Physics {
|
||||
|
||||
// Tuneig específic de l'explosió d'enemic (overrides als defaults
|
||||
// que es passen com a paràmetres opcionals a explode()).
|
||||
constexpr float ENEMY_LIFETIME = 3.0F; // Vida mínima del debris (s) — els que segueixen movent-se viuen més
|
||||
constexpr float ENEMY_INTACT_TIME = 1.5F; // Temps intacte abans de menguar (s)
|
||||
constexpr float ENEMY_FRICTION = -30.0F; // Fricció més suau perquè s'estenguin més
|
||||
constexpr int ENEMY_SEGMENT_MULTIPLIER = 3; // Còpies de cada segment (5 cares × 3 = 15 trossos)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user