fix: la logica de Rects dels credits
This commit is contained in:
@@ -29,9 +29,15 @@ class Credits {
|
||||
// --- Métodos del bucle principal ---
|
||||
void update(float delta_time); // Actualización principal de la lógica (time-based)
|
||||
auto calculateDeltaTime() -> float; // Calcula el deltatime
|
||||
void initVars(); // Inicializa variables
|
||||
void startCredits(); // Inicializa mas variables
|
||||
|
||||
// --- Constantes de clase ---
|
||||
static constexpr int PLAY_AREA_HEIGHT = 200;
|
||||
static constexpr float FAST_FORWARD_MULTIPLIER = 6.0F;
|
||||
static constexpr float BLACK_RECT_INTERVAL_S = 4.0F / 60.0F; // ~0.0667s
|
||||
static constexpr float FRAMES_PER_SECOND = 60.0F;
|
||||
static constexpr int HORIZONTAL_SPEED = 2;
|
||||
|
||||
// --- Objetos principales ---
|
||||
std::unique_ptr<BalloonManager> balloon_manager_; // Gestión de globos
|
||||
@@ -45,15 +51,26 @@ class Credits {
|
||||
SDL_Texture* canvas_; // Textura donde se dibuja todo
|
||||
|
||||
// --- Temporización y contadores ---
|
||||
Uint64 last_time_ = 0; // Último tiempo registrado para deltaTime
|
||||
float counter_ = 0; // Contador principal de lógica
|
||||
float counter_pre_fade_ = 0; // Activación del fundido final
|
||||
float counter_prevent_endless_ = 0; // Prevención de bucle infinito
|
||||
Uint64 last_time_ = 0; // Último tiempo registrado para deltaTime
|
||||
float counter_ = 0.0F; // Contador principal de lógica
|
||||
float counter_pre_fade_ = 0.0F; // Activación del fundido final
|
||||
float counter_prevent_endless_ = 0.0F; // Prevención de bucle infinito
|
||||
float current_step_ = 0.0F;
|
||||
int total_steps_ = 1;
|
||||
bool initialized_ = false;
|
||||
|
||||
// --- Guardar estados iniciales para cálculo de pasos ---
|
||||
int init_top_h = 0;
|
||||
int init_bottom_y = 0;
|
||||
int init_left_w = 0;
|
||||
int init_right_x = 0;
|
||||
|
||||
// --- Variables de estado ---
|
||||
bool fading_ = false; // Estado del fade final
|
||||
bool want_to_pass_ = false; // Jugador quiere saltarse créditos
|
||||
bool mini_logo_on_position_ = false; // Minilogo en posición final
|
||||
bool vertical_done_ = false;
|
||||
bool horizontal_done_ = false;
|
||||
|
||||
// --- Diseño y posicionamiento ---
|
||||
float black_bars_size_ = (param.game.game_area.rect.h - PLAY_AREA_HEIGHT) / 2; // Tamaño de las barras negras
|
||||
@@ -127,6 +144,7 @@ class Credits {
|
||||
void fillTextTexture(); // Crear textura de texto de créditos
|
||||
void fillCanvas(); // Renderizar todos los sprites y fondos
|
||||
void renderPlayers(); // Renderiza los jugadores
|
||||
void drawBorderRect(); // Renderiza el rectangulo del borde
|
||||
|
||||
// --- Métodos de lógica del juego ---
|
||||
void throwBalloons(float delta_time); // Lanzar globos al escenario (time-based)
|
||||
@@ -138,7 +156,7 @@ class Credits {
|
||||
// --- Métodos de interfaz ---
|
||||
void updateBlackRects(); // Actualizar rectángulos negros (letterbox) (frame-based)
|
||||
void updateBlackRects(float delta_time); // Actualizar rectángulos negros (letterbox) (time-based)
|
||||
void updateRedRect(); // Actualizar rectángulo rojo (borde)
|
||||
void updateBorderRect(); // Actualizar rectángulo rojo (borde)
|
||||
void updateTextureDstRects(); // Actualizar destinos de texturas (frame-based)
|
||||
void updateTextureDstRects(float delta_time); // Actualizar destinos de texturas (time-based)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user