eliminat el vector precalculat en tiled_bg per al moviment circular
This commit is contained in:
@@ -27,7 +27,7 @@ class Background {
|
|||||||
using ProgressCallback = std::function<void(float)>; // Callback para sincronización
|
using ProgressCallback = std::function<void(float)>; // Callback para sincronización
|
||||||
|
|
||||||
// --- Constructor y destructor ---
|
// --- Constructor y destructor ---
|
||||||
Background(float total_progress_to_complete); // Constructor principal
|
Background(float total_progress_to_complete = 6100.0F); // Constructor principal
|
||||||
~Background(); // Destructor
|
~Background(); // Destructor
|
||||||
|
|
||||||
// --- Métodos principales ---
|
// --- Métodos principales ---
|
||||||
|
|||||||
@@ -40,10 +40,6 @@ TiledBG::TiledBG(SDL_FRect pos, TiledBGMode mode)
|
|||||||
break;
|
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
|
// Destructor
|
||||||
@@ -97,10 +93,10 @@ void TiledBG::update(float delta_time) {
|
|||||||
}
|
}
|
||||||
case TiledBGMode::CIRCLE: {
|
case TiledBGMode::CIRCLE: {
|
||||||
// El tileado de fondo se desplaza en circulo
|
// 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_.x = 128 + static_cast<int>(std::cos(angle_rad) * 128);
|
||||||
window_.y = 128 + (static_cast<int>(sin_[(360 - INDEX) % 360] * 96));
|
window_.y = 128 + static_cast<int>(std::sin(-angle_rad) * 96);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
#include <SDL3/SDL.h> // Para SDL_FRect, SDL_SetTextureColorMod, SDL_Renderer, SDL_Texture
|
#include <SDL3/SDL.h> // Para SDL_FRect, SDL_SetTextureColorMod, SDL_Renderer, SDL_Texture
|
||||||
|
|
||||||
#include <array> // Para array
|
|
||||||
|
|
||||||
#include "color.h" // Para Color
|
#include "color.h" // Para Color
|
||||||
|
|
||||||
@@ -53,7 +52,6 @@ class TiledBG {
|
|||||||
SDL_FRect pos_; // Posición y tamaño del mosaico
|
SDL_FRect pos_; // Posición y tamaño del mosaico
|
||||||
SDL_FRect window_; // Ventana visible para la textura de fondo del título
|
SDL_FRect window_; // Ventana visible para la textura de fondo del título
|
||||||
TiledBGMode mode_; // Tipo de movimiento del mosaico
|
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 desp_ = 0.0F; // Desplazamiento aplicado
|
||||||
float speed_ = 1.0F; // Incremento que se añade al desplazamiento a cada bucle
|
float speed_ = 1.0F; // Incremento que se añade al desplazamiento a cada bucle
|
||||||
bool stopping_ = false; // Indica si se está deteniendo
|
bool stopping_ = false; // Indica si se está deteniendo
|
||||||
|
|||||||
Reference in New Issue
Block a user