callbacks de merda
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
#include "core/rendering/text.hpp" // Para Text, Text::CENTER_FLAG, Text::COLOR_FLAG
|
||||
#include "core/resources/resource_cache.hpp" // Para ResourceRoom, Resource
|
||||
#include "core/resources/resource_list.hpp" // Para Asset
|
||||
#include "core/system/event_buffer.hpp" // Para EventBuffer
|
||||
#include "core/system/global_events.hpp" // Para check
|
||||
#include "game/defaults.hpp" // Para Defaults::Game
|
||||
#include "game/game_control.hpp" // Para GameControl
|
||||
@@ -158,9 +159,20 @@ Game::Game(Mode mode)
|
||||
|
||||
SceneManager::current = SceneManager::Scene::GAME;
|
||||
SceneManager::options = SceneManager::Options::NONE;
|
||||
|
||||
// Inicialización de música (antes estaba al principio de run())
|
||||
keepMusicPlaying();
|
||||
if (!scoreboard_data_->music && mode_ == Mode::GAME) {
|
||||
Audio::get()->pauseMusic();
|
||||
}
|
||||
}
|
||||
|
||||
Game::~Game() {
|
||||
// Parar música al destruir la escena (antes estaba al final de run())
|
||||
if (mode_ == Mode::GAME) {
|
||||
Audio::get()->stopMusic();
|
||||
}
|
||||
|
||||
ItemTracker::destroy();
|
||||
|
||||
GameControl::change_player_skin = nullptr;
|
||||
@@ -185,8 +197,7 @@ Game::~Game() {
|
||||
|
||||
// Comprueba los eventos de la cola
|
||||
void Game::handleEvents() {
|
||||
SDL_Event event;
|
||||
while (SDL_PollEvent(&event)) {
|
||||
for (const auto& event : EventBuffer::events) {
|
||||
GlobalEvents::handle(event);
|
||||
#ifdef _DEBUG
|
||||
// En modo editor: click del ratón cierra la consola
|
||||
@@ -257,23 +268,6 @@ void Game::handleInput() {
|
||||
GlobalInputs::handle();
|
||||
}
|
||||
|
||||
// Bucle para el juego
|
||||
void Game::run() {
|
||||
keepMusicPlaying();
|
||||
if (!scoreboard_data_->music && mode_ == Mode::GAME) {
|
||||
Audio::get()->pauseMusic();
|
||||
}
|
||||
|
||||
while (SceneManager::current == SceneManager::Scene::GAME) {
|
||||
update();
|
||||
render();
|
||||
}
|
||||
|
||||
if (mode_ == Mode::GAME) {
|
||||
Audio::get()->stopMusic();
|
||||
}
|
||||
}
|
||||
|
||||
// Actualiza el juego, las variables, comprueba la entrada, etc.
|
||||
void Game::update() {
|
||||
const float DELTA_TIME = delta_timer_.tick();
|
||||
|
||||
@@ -34,8 +34,9 @@ class Game {
|
||||
explicit Game(Mode mode);
|
||||
~Game();
|
||||
|
||||
// --- Bucle para el juego ---
|
||||
void run();
|
||||
// --- Frame (llamados desde Director::iterate) ---
|
||||
void update();
|
||||
void render();
|
||||
|
||||
private:
|
||||
// --- Constantes de tiempo ---
|
||||
@@ -53,8 +54,6 @@ class Game {
|
||||
};
|
||||
|
||||
// --- Métodos ---
|
||||
void update(); // Actualiza el juego, las variables, comprueba la entrada, etc.
|
||||
void render(); // Pinta los objetos en pantalla
|
||||
void handleEvents(); // Comprueba los eventos de la cola
|
||||
void transitionToState(State new_state); // Cambia al estado especificado y resetea los timers
|
||||
void updatePlaying(float delta_time); // Actualiza el juego en estado PLAYING
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "core/rendering/sprite/sprite.hpp" // Para SSprite
|
||||
#include "core/rendering/surface.hpp" // Para Surface
|
||||
#include "core/resources/resource_cache.hpp" // Para Resource
|
||||
#include "core/system/event_buffer.hpp" // Para EventBuffer
|
||||
#include "core/system/global_events.hpp" // Para check
|
||||
#include "game/options.hpp" // Para Options, SectionState, options, Section
|
||||
#include "game/scene_manager.hpp" // Para SceneManager
|
||||
@@ -56,8 +57,7 @@ Logo::Logo()
|
||||
|
||||
// Comprueba el manejador de eventos
|
||||
void Logo::handleEvents() {
|
||||
SDL_Event event;
|
||||
while (SDL_PollEvent(&event)) {
|
||||
for (const auto& event : EventBuffer::events) {
|
||||
GlobalEvents::handle(event);
|
||||
}
|
||||
}
|
||||
@@ -228,14 +228,6 @@ void Logo::render() { // NOLINT(readability-convert-member-functions-to-static)
|
||||
Screen::get()->render();
|
||||
}
|
||||
|
||||
// Bucle para el logo del juego
|
||||
void Logo::run() {
|
||||
while (SceneManager::current == SceneManager::Scene::LOGO) {
|
||||
update();
|
||||
render();
|
||||
}
|
||||
}
|
||||
|
||||
// Termina la sección
|
||||
void Logo::endSection() {
|
||||
SceneManager::current = SceneManager::Scene::TITLE;
|
||||
|
||||
@@ -30,8 +30,9 @@ class Logo {
|
||||
Logo();
|
||||
~Logo() = default;
|
||||
|
||||
// --- Bucle principal ---
|
||||
void run();
|
||||
// --- Frame (llamados desde Director::iterate) ---
|
||||
void update();
|
||||
void render();
|
||||
|
||||
private:
|
||||
// --- Constantes de tiempo (en segundos) ---
|
||||
@@ -46,8 +47,6 @@ class Logo {
|
||||
static constexpr int JAILGAMES_DEST_X = 37; // Posición X de destino para JAILGAMES
|
||||
|
||||
// --- Métodos ---
|
||||
void update(); // Actualiza las variables
|
||||
void render(); // Dibuja en pantalla
|
||||
static void handleEvents(); // Comprueba el manejador de eventos
|
||||
static void handleInput(); // Comprueba las entradas
|
||||
void updateJAILGAMES(float delta_time); // Gestiona el logo de JAILGAME (time-based)
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "core/rendering/text.hpp" // Para Text, Text::CENTER_FLAG, Text::COLOR_FLAG
|
||||
#include "core/resources/resource_cache.hpp" // Para Resource
|
||||
#include "core/resources/resource_list.hpp" // Para Asset
|
||||
#include "core/system/event_buffer.hpp" // Para EventBuffer
|
||||
#include "core/system/global_events.hpp" // Para check
|
||||
#include "game/gameplay/cheevos.hpp" // Para Cheevos, Achievement
|
||||
#include "game/options.hpp" // Para Options, options, SectionState, Section
|
||||
@@ -53,8 +54,7 @@ Title::~Title() { // NOLINT(modernize-use-equals-default)
|
||||
|
||||
// Comprueba el manejador de eventos
|
||||
void Title::handleEvents() {
|
||||
SDL_Event event;
|
||||
while (SDL_PollEvent(&event)) {
|
||||
for (const auto& event : EventBuffer::events) {
|
||||
GlobalEvents::handle(event);
|
||||
|
||||
// Manejo especial para captura de botones de gamepad
|
||||
@@ -311,14 +311,6 @@ void Title::render() {
|
||||
Screen::get()->render();
|
||||
}
|
||||
|
||||
// Bucle para el logo del juego
|
||||
void Title::run() {
|
||||
while (SceneManager::current == SceneManager::Scene::TITLE) {
|
||||
update();
|
||||
render();
|
||||
}
|
||||
}
|
||||
|
||||
// Crea y rellena la textura para mostrar los logros
|
||||
void Title::createCheevosTexture() { // NOLINT(readability-convert-member-functions-to-static)
|
||||
// Define la zona central del menu (entre el logo y la marquesina)
|
||||
|
||||
@@ -17,8 +17,9 @@ class Title {
|
||||
Title();
|
||||
~Title();
|
||||
|
||||
// --- Bucle principal ---
|
||||
void run();
|
||||
// --- Frame (llamados desde Director::iterate) ---
|
||||
void update();
|
||||
void render();
|
||||
|
||||
private:
|
||||
// --- Estructuras y enumeraciones ---
|
||||
@@ -38,8 +39,6 @@ class Title {
|
||||
static constexpr float CHEEVOS_SCROLL_DECELERATION = 800.0F; // Desaceleración del scroll (pixels/segundo²)
|
||||
|
||||
// --- Métodos ---
|
||||
void update(); // Actualiza las variables
|
||||
void render(); // Dibuja en pantalla
|
||||
void handleEvents(); // Comprueba el manejador de eventos
|
||||
void handleMainMenuKeyPress(SDL_Keycode key); // Maneja las teclas del menu principal
|
||||
void handleInput(float delta_time); // Comprueba las entradas
|
||||
|
||||
Reference in New Issue
Block a user