eliminat el vector precalculat en tiled_bg per al moviment circular

This commit is contained in:
2025-09-25 08:08:29 +02:00
parent 308f5c20fb
commit 3897553704
3 changed files with 5 additions and 11 deletions

View File

@@ -27,7 +27,7 @@ class Background {
using ProgressCallback = std::function<void(float)>; // Callback para sincronización
// --- Constructor y destructor ---
Background(float total_progress_to_complete); // Constructor principal
Background(float total_progress_to_complete = 6100.0F); // Constructor principal
~Background(); // Destructor
// --- Métodos principales ---

View File

@@ -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<int>(desp_) % 360;
const float angle_rad = (desp_ * std::numbers::pi / 180.0F);
window_.x = 128 + (static_cast<int>(sin_[(INDEX + 270) % 360] * 128));
window_.y = 128 + (static_cast<int>(sin_[(360 - INDEX) % 360] * 96));
window_.x = 128 + static_cast<int>(std::cos(angle_rad) * 128);
window_.y = 128 + static_cast<int>(std::sin(-angle_rad) * 96);
break;
}
default:

View File

@@ -2,7 +2,6 @@
#include <SDL3/SDL.h> // Para SDL_FRect, SDL_SetTextureColorMod, SDL_Renderer, SDL_Texture
#include <array> // 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<double, 360> 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