refactor: partir defaults.hpp en source/core/defaults/*.hpp (umbrella)
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>
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
// 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
|
||||
Reference in New Issue
Block a user