diff --git a/source/background.h b/source/background.h index e9894a5..876ab3d 100644 --- a/source/background.h +++ b/source/background.h @@ -27,8 +27,8 @@ class Background { using ProgressCallback = std::function; // Callback para sincronización // --- Constructor y destructor --- - Background(float total_progress_to_complete); // Constructor principal - ~Background(); // Destructor + Background(float total_progress_to_complete = 6100.0F); // Constructor principal + ~Background(); // Destructor // --- Métodos principales --- void update(float delta_time); // Actualiza la lógica del objeto diff --git a/source/tiled_bg.cpp b/source/tiled_bg.cpp index 13bf19b..2830ee1 100644 --- a/source/tiled_bg.cpp +++ b/source/tiled_bg.cpp @@ -40,10 +40,6 @@ TiledBG::TiledBG(SDL_FRect pos, TiledBGMode mode) break; } - // Inicializa los valores del vector con los valores del seno - for (int i = 0; i < 360; ++i) { - sin_[i] = std::sin(i * std::numbers::pi / 180.0); // Convierte grados a radianes y calcula el seno - } } // Destructor @@ -97,10 +93,10 @@ void TiledBG::update(float delta_time) { } case TiledBGMode::CIRCLE: { // El tileado de fondo se desplaza en circulo - const int INDEX = static_cast(desp_) % 360; + const float angle_rad = (desp_ * std::numbers::pi / 180.0F); - window_.x = 128 + (static_cast(sin_[(INDEX + 270) % 360] * 128)); - window_.y = 128 + (static_cast(sin_[(360 - INDEX) % 360] * 96)); + window_.x = 128 + static_cast(std::cos(angle_rad) * 128); + window_.y = 128 + static_cast(std::sin(-angle_rad) * 96); break; } default: diff --git a/source/tiled_bg.h b/source/tiled_bg.h index fe4e230..c5a1b42 100644 --- a/source/tiled_bg.h +++ b/source/tiled_bg.h @@ -2,7 +2,6 @@ #include // Para SDL_FRect, SDL_SetTextureColorMod, SDL_Renderer, SDL_Texture -#include // Para array #include "color.h" // Para Color @@ -53,7 +52,6 @@ class TiledBG { SDL_FRect pos_; // Posición y tamaño del mosaico SDL_FRect window_; // Ventana visible para la textura de fondo del título TiledBGMode mode_; // Tipo de movimiento del mosaico - std::array sin_; // Vector con los valores del seno precalculados float desp_ = 0.0F; // Desplazamiento aplicado float speed_ = 1.0F; // Incremento que se añade al desplazamiento a cada bucle bool stopping_ = false; // Indica si se está deteniendo