aa0abd9ae1
defaults.hpp tenia 527 línies amb 17 namespaces de dominis distints (Window, Game, Zones, Entities, Palette, Ship, Physics, Math, Brightness, Rendering, Audio, Music, Sound, Controls, Enemies, Title, FloatingScore). 22 .cpp/.hpp l'incloïen, així que tocar una constant forçava recompilar pràcticament tot. Es divideix en 15 subfitxers (un per namespace, fusionant Music/Sound a audio.hpp i unificant els dos blocs Game duplicats en un sol): defaults/window.hpp defaults/audio.hpp defaults/game.hpp defaults/controls.hpp defaults/zones.hpp defaults/enemies.hpp defaults/entities.hpp defaults/title.hpp defaults/palette.hpp defaults/floating_score.hpp defaults/ship.hpp defaults/math.hpp defaults/physics.hpp defaults/brightness.hpp defaults/rendering.hpp Cross-deps explícites (#include en lloc d'order-of-declaration): zones.hpp -> game.hpp (per Game::WIDTH/HEIGHT) enemies.hpp -> entities.hpp (per SHIP_RADIUS) title.hpp -> game.hpp, math.hpp + <cmath> defaults.hpp queda com a umbrella que inclou els 15 subfitxers. Els 22 includers existents no requereixen cap canvi. Codi nou pot incloure el subfitxer concret per millorar la compilació incremental. Hallazgos #22 i #30 de CODE_REVIEW.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
36 lines
1.8 KiB
C++
36 lines
1.8 KiB
C++
// physics.hpp - Constants de física del control de la nau i debris d'explosió
|
|
// © 2026 JailDesigner
|
|
|
|
#pragma once
|
|
|
|
namespace Defaults::Physics {
|
|
|
|
constexpr float ROTATION_SPEED = 3.14F; // rad/s (~180°/s)
|
|
constexpr float ACCELERATION = 400.0F; // px/s²
|
|
constexpr float MAX_VELOCITY = 120.0F; // px/s
|
|
constexpr float FRICTION = 20.0F; // px/s²
|
|
|
|
// Explosions (debris physics)
|
|
namespace Debris {
|
|
constexpr float VELOCITAT_BASE = 80.0F; // Velocidad inicial (px/s)
|
|
constexpr float VARIACIO_VELOCITAT = 40.0F; // ±variació aleatòria (px/s)
|
|
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; // Duració màxima (segons) - enemy/bullet debris
|
|
constexpr float TEMPS_VIDA_NAU = 3.0F; // Ship debris lifetime (matches DEATH_DURATION)
|
|
constexpr float SHRINK_RATE = 0.5F; // Reducció de mida (factor/s)
|
|
|
|
// Herència de velocity angular (trayectorias curvas)
|
|
constexpr float FACTOR_HERENCIA_MIN = 0.7F; // Mínimo 70% del drotacio heredat
|
|
constexpr float FACTOR_HERENCIA_MAX = 1.0F; // Màxim 100% del drotacio heredat
|
|
constexpr float FRICCIO_ANGULAR = 0.5F; // Desacceleració angular (rad/s²)
|
|
|
|
// Angular velocity sin for trajectory inheritance
|
|
// Excess above this threshold is converted to tangential linear velocity
|
|
// Prevents "vortex trap" problem with high-rotation enemies
|
|
constexpr float VELOCITAT_ROT_MAX = 1.5F; // rad/s (~86°/s)
|
|
} // namespace Debris
|
|
|
|
} // namespace Defaults::Physics
|