896a899b0f
GameScene::detectar_col*_* (3 funciones de deteccion de gameplay,
~170 LOC) salen a Systems::Collision en
source/game/systems/collision_system.{hpp,cpp}.
API:
- struct Systems::Collision::Context: agrupa todo lo que las
detecciones leen/modifican (ships, enemies, bullets, hit_timer,
score, lives, debris, floating_score, match_config) y un callback
on_player_hit para delegar la muerte del jugador.
- Funciones libres: detectBulletEnemy, detectShipEnemy,
detectBulletPlayer y detectAll.
GameScene::update construye el Context y llama detectAll. La
funcion GameScene::tocado se inyecta via lambda. El cuerpo de update
queda mas legible y separa fisica de gameplay (lo decide el solver)
de fisica rigida (lo decide PhysicsWorld).
GameScene.cpp: 1429 -> 1274 LOC. Smoke test xvfb OK.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>