- afegides claus i portes al editor

- fix: crear una nova habitació no modificava la memoria, soles els fitxers
This commit is contained in:
2026-04-10 18:34:04 +02:00
parent 077b86ea4a
commit 8ebf7894f2
15 changed files with 633 additions and 17 deletions

View File

@@ -63,3 +63,13 @@ auto Door::justOpened() -> bool {
}
return false;
}
#ifdef _DEBUG
// Mueve la puerta a la posición indicada (sprite + collider). NO toca el
// CollisionMap — eso es responsabilidad del DoorManager (moveDoor/removeDoor).
void Door::setPosition(float x, float y) {
sprite_->setPosX(x);
sprite_->setPosY(y);
collider_ = sprite_->getRect();
}
#endif

View File

@@ -52,6 +52,10 @@ class Door {
void setPaused(bool paused) { is_paused_ = paused; } // Pausa/despausa la animación
#ifdef _DEBUG
void setPosition(float x, float y); // Mueve sprite y collider en vivo (editor; NO toca CollisionMap)
#endif
private:
std::shared_ptr<AnimatedSprite> sprite_; // Sprite animado de la puerta
SDL_FRect collider_{}; // Rectángulo de colisión

View File

@@ -30,3 +30,12 @@ void Key::update(float delta_time) {
auto Key::getPos() const -> SDL_FPoint {
return SDL_FPoint{.x = sprite_->getX(), .y = sprite_->getY()};
}
#ifdef _DEBUG
// Mueve la llave a la posición indicada (sprite + collider). Solo editor.
void Key::setPosition(float x, float y) {
sprite_->setPosX(x);
sprite_->setPosY(y);
collider_ = sprite_->getRect();
}
#endif

View File

@@ -36,6 +36,10 @@ class Key {
void setPaused(bool paused) { is_paused_ = paused; } // Pausa/despausa la animación
#ifdef _DEBUG
void setPosition(float x, float y); // Mueve sprite y collider en vivo (editor)
#endif
private:
std::shared_ptr<AnimatedSprite> sprite_; // Sprite animado de la llave
SDL_FRect collider_{}; // Rectángulo de colisión