Fase 6a+b: Entity gana RigidBody body_, GameScene gana PhysicsWorld
Infraestructura mínima para la migración real de entidades a física vectorial (Fase 6c-e). Sin cambios de comportamiento: las entidades aún no usan body_ ni se registran al mundo. Entity (core/entities/entity.hpp): - Nuevo member protegido: Physics::RigidBody body_ (default-construido) - Nuevo método virtual: postUpdate(dt) — no-op por default, override opcional para sincronizar mirror center_/angle_ desde body_ tras la integración física. - Nuevos getters: getBody() (mutable y const) - Include de core/physics/rigid_body.hpp GameScene (game/scenes/game_scene.hpp/cpp): - Nuevo member: Physics::PhysicsWorld physics_world_ - En init(): physics_world_.clear() + setBounds(PLAYAREA). Las entidades migradas se registrarán cada una en su propio init(). El loop de GameScene::update() no se modifica todavía. La invocación de physics_world_.update(dt) + postUpdate() se añade en Fase 6c junto con la primera entidad migrada (Ship), para validar el flujo tri-fase con un caso real en lugar de cambios especulativos al control de flujo. Smoke test xvfb OK. Compila y arranca sin cambios visibles. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -131,6 +131,11 @@ void GameScene::init() {
|
||||
// Basat en el codi Pascal original: line 376
|
||||
std::srand(static_cast<unsigned>(std::time(nullptr)));
|
||||
|
||||
// Configurar el mundo físico con los límites de la zona de juego.
|
||||
// Las entidades se registrarán cada una al inicializarse (Fase 6c-e).
|
||||
physics_world_.clear();
|
||||
physics_world_.setBounds(Defaults::Zones::PLAYAREA);
|
||||
|
||||
// [NEW] Load stage configuration (only once)
|
||||
if (!stage_config_) {
|
||||
stage_config_ = StageSystem::StageLoader::load("data/stages/stages.yaml");
|
||||
|
||||
Reference in New Issue
Block a user