sdl_callbacks
This commit is contained in:
@@ -41,6 +41,7 @@
|
||||
#include "smart_sprite.hpp" // Para SmartSprite
|
||||
#include "stage.hpp" // Para StageManager, StageData
|
||||
#include "tabe.hpp" // Para Tabe
|
||||
#include "ui/logger.hpp" // Para section
|
||||
#include "text.hpp" // Para Text
|
||||
#include "texture.hpp" // Para Texture
|
||||
#include "ui/service_menu.hpp" // Para ServiceMenu
|
||||
@@ -131,6 +132,11 @@ Game::Game(Player::Id player_id, int current_stage, bool demo_enabled)
|
||||
#ifdef RECORDING
|
||||
setState(State::PLAYING);
|
||||
#endif
|
||||
|
||||
Logger::section(demo_.enabled ? "GAME (DEMO)" : "GAME");
|
||||
|
||||
// Inicializa el timer de delta time para el primer frame del callback
|
||||
last_time_ = SDL_GetTicks();
|
||||
}
|
||||
|
||||
Game::~Game() {
|
||||
@@ -978,7 +984,33 @@ auto Game::calculateDeltaTime() -> float {
|
||||
return DELTA_TIME_MS / 1000.0F; // Convertir de milisegundos a segundos
|
||||
}
|
||||
|
||||
// Bucle para el juego
|
||||
// Avanza un frame del juego (llamado desde Director::iterate)
|
||||
void Game::iterate() {
|
||||
const float DELTA_TIME = calculateDeltaTime();
|
||||
checkInput();
|
||||
update(DELTA_TIME);
|
||||
render();
|
||||
}
|
||||
|
||||
// Procesa un evento del juego (llamado desde Director::handleEvent)
|
||||
void Game::handleEvent(const SDL_Event& event) {
|
||||
switch (event.type) {
|
||||
case SDL_EVENT_WINDOW_FOCUS_LOST:
|
||||
pause_manager_->setFocusLossPause(!demo_.enabled);
|
||||
break;
|
||||
case SDL_EVENT_WINDOW_FOCUS_GAINED:
|
||||
pause_manager_->setFocusLossPause(false);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
#ifdef _DEBUG
|
||||
handleDebugEvents(event);
|
||||
#endif
|
||||
}
|
||||
|
||||
// Bucle para el juego (fallback legacy)
|
||||
void Game::run() {
|
||||
last_time_ = SDL_GetTicks();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user