fix en transició rapida de pantalles

This commit is contained in:
2026-04-07 12:26:45 +02:00
parent 0f80c1f34a
commit 45c7c5621a
2 changed files with 6 additions and 0 deletions

View File

@@ -797,6 +797,10 @@ void Game::checkPlayerIsOnBorder() {
if (transitioning_) {
return;
}
if (transition_just_ended_) {
transition_just_ended_ = false;
return;
}
if (player_->isOnBorder()) {
const auto BORDER = player_->getBorder();
@@ -837,6 +841,7 @@ void Game::checkPlayerIsOnBorder() {
// Finaliza la transición entre pantallas
void Game::endTransition() {
transitioning_ = false;
transition_just_ended_ = true;
transition_timer_ = 0.0F;
transition_old_room_.reset();
transition_direction_ = Room::Border::NONE;

View File

@@ -111,6 +111,7 @@ class Game {
float transition_timer_{0.0F}; // Tiempo transcurrido en la transición
std::shared_ptr<Room> transition_old_room_; // Habitación saliente (se mantiene viva durante la transición)
Room::Border transition_direction_{Room::Border::NONE}; // Dirección de la transición
bool transition_just_ended_{false}; // Cooldown de 1 frame tras finalizar transición
// Variables de demo mode
DemoData demo_; // Variables para el modo demo