fix en transició rapida de pantalles
This commit is contained in:
@@ -797,6 +797,10 @@ void Game::checkPlayerIsOnBorder() {
|
|||||||
if (transitioning_) {
|
if (transitioning_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (transition_just_ended_) {
|
||||||
|
transition_just_ended_ = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (player_->isOnBorder()) {
|
if (player_->isOnBorder()) {
|
||||||
const auto BORDER = player_->getBorder();
|
const auto BORDER = player_->getBorder();
|
||||||
@@ -837,6 +841,7 @@ void Game::checkPlayerIsOnBorder() {
|
|||||||
// Finaliza la transición entre pantallas
|
// Finaliza la transición entre pantallas
|
||||||
void Game::endTransition() {
|
void Game::endTransition() {
|
||||||
transitioning_ = false;
|
transitioning_ = false;
|
||||||
|
transition_just_ended_ = true;
|
||||||
transition_timer_ = 0.0F;
|
transition_timer_ = 0.0F;
|
||||||
transition_old_room_.reset();
|
transition_old_room_.reset();
|
||||||
transition_direction_ = Room::Border::NONE;
|
transition_direction_ = Room::Border::NONE;
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ class Game {
|
|||||||
float transition_timer_{0.0F}; // Tiempo transcurrido en la transición
|
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)
|
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
|
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
|
// Variables de demo mode
|
||||||
DemoData demo_; // Variables para el modo demo
|
DemoData demo_; // Variables para el modo demo
|
||||||
|
|||||||
Reference in New Issue
Block a user