Fase 9a: extraer CollisionSystem de GameScene a modulo aparte
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>
This commit is contained in:
@@ -82,9 +82,6 @@ class GameScene {
|
||||
|
||||
// Funciones privades
|
||||
void tocado(uint8_t player_id);
|
||||
void detectar_col·lisions_bales_enemics(); // Colisiones bullet-enemy
|
||||
void detectar_col·lisio_naus_enemics(); // Ship-enemy collision detection (plural)
|
||||
void detectar_col·lisions_bales_jugadors(); // Bullet-player collision detection (friendly fire)
|
||||
void dibuixar_marges() const; // Dibuixar vores de la zona de juego
|
||||
void dibuixar_marcador(); // Dibuixar marcador de puntuación
|
||||
void disparar_bala(uint8_t player_id); // Shoot bullet from player
|
||||
|
||||
Reference in New Issue
Block a user