corregida la posicio del titol al inici
This commit is contained in:
@@ -330,32 +330,34 @@ void EscenaTitol::actualitzar(float delta_time) {
|
|||||||
animacio_activa_ = true;
|
animacio_activa_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Acumular temps escalat directament
|
// Només calcular i aplicar offsets si l'animació està activa
|
||||||
if (animacio_activa_) {
|
if (animacio_activa_) {
|
||||||
|
// Acumular temps escalat
|
||||||
temps_animacio_ += delta_time * factor_lerp_;
|
temps_animacio_ += delta_time * factor_lerp_;
|
||||||
|
|
||||||
|
// Usar amplituds i freqüències completes
|
||||||
|
float amplitude_x_actual = ORBIT_AMPLITUDE_X;
|
||||||
|
float amplitude_y_actual = ORBIT_AMPLITUDE_Y;
|
||||||
|
float frequency_x_actual = ORBIT_FREQUENCY_X;
|
||||||
|
float frequency_y_actual = ORBIT_FREQUENCY_Y;
|
||||||
|
|
||||||
|
// Calcular offset orbital
|
||||||
|
float offset_x = amplitude_x_actual * std::sin(2.0f * Defaults::Math::PI * frequency_x_actual * temps_animacio_);
|
||||||
|
float offset_y = amplitude_y_actual * std::sin(2.0f * Defaults::Math::PI * frequency_y_actual * temps_animacio_ + ORBIT_PHASE_OFFSET);
|
||||||
|
|
||||||
|
// Aplicar offset a totes les lletres de "ORNI"
|
||||||
|
for (size_t i = 0; i < lletres_orni_.size(); ++i) {
|
||||||
|
lletres_orni_[i].posicio.x = posicions_originals_orni_[i].x + static_cast<int>(std::round(offset_x));
|
||||||
|
lletres_orni_[i].posicio.y = posicions_originals_orni_[i].y + static_cast<int>(std::round(offset_y));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Aplicar offset a totes les lletres de "ATTACK!"
|
||||||
|
for (size_t i = 0; i < lletres_attack_.size(); ++i) {
|
||||||
|
lletres_attack_[i].posicio.x = posicions_originals_attack_[i].x + static_cast<int>(std::round(offset_x));
|
||||||
|
lletres_attack_[i].posicio.y = posicions_originals_attack_[i].y + static_cast<int>(std::round(offset_y));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
// Si no està activa, mantenim les posicions originals (ja establertes en inicialització)
|
||||||
// Usar amplituds i freqüències completes sempre
|
|
||||||
float amplitude_x_actual = ORBIT_AMPLITUDE_X;
|
|
||||||
float amplitude_y_actual = ORBIT_AMPLITUDE_Y;
|
|
||||||
float frequency_x_actual = ORBIT_FREQUENCY_X;
|
|
||||||
float frequency_y_actual = ORBIT_FREQUENCY_Y;
|
|
||||||
|
|
||||||
// Calcular offset orbital
|
|
||||||
float offset_x = amplitude_x_actual * std::sin(2.0f * Defaults::Math::PI * frequency_x_actual * temps_animacio_);
|
|
||||||
float offset_y = amplitude_y_actual * std::sin(2.0f * Defaults::Math::PI * frequency_y_actual * temps_animacio_ + ORBIT_PHASE_OFFSET);
|
|
||||||
|
|
||||||
// Aplicar offset a totes les lletres de "ORNI"
|
|
||||||
for (size_t i = 0; i < lletres_orni_.size(); ++i) {
|
|
||||||
lletres_orni_[i].posicio.x = posicions_originals_orni_[i].x + static_cast<int>(std::round(offset_x));
|
|
||||||
lletres_orni_[i].posicio.y = posicions_originals_orni_[i].y + static_cast<int>(std::round(offset_y));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Aplicar offset a totes les lletres de "ATTACK!"
|
|
||||||
for (size_t i = 0; i < lletres_attack_.size(); ++i) {
|
|
||||||
lletres_attack_[i].posicio.x = posicions_originals_attack_[i].x + static_cast<int>(std::round(offset_x));
|
|
||||||
lletres_attack_[i].posicio.y = posicions_originals_attack_[i].y + static_cast<int>(std::round(offset_y));
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -74,11 +74,11 @@ class EscenaTitol {
|
|||||||
static constexpr int MUSIC_FADE = 1000; // Duracio del fade de la musica del titol al començar a jugar
|
static constexpr int MUSIC_FADE = 1000; // Duracio del fade de la musica del titol al començar a jugar
|
||||||
|
|
||||||
// Constants d'animació del logo
|
// Constants d'animació del logo
|
||||||
static constexpr float ORBIT_AMPLITUDE_X = 2.0f * 2; // Amplitud oscil·lació horitzontal (píxels)
|
static constexpr float ORBIT_AMPLITUDE_X = 4.0f; // Amplitud oscil·lació horitzontal (píxels)
|
||||||
static constexpr float ORBIT_AMPLITUDE_Y = 1.5f * 2; // Amplitud oscil·lació vertical (píxels)
|
static constexpr float ORBIT_AMPLITUDE_Y = 3.0f; // Amplitud oscil·lació vertical (píxels)
|
||||||
static constexpr float ORBIT_FREQUENCY_X = 0.8f; // Velocitat oscil·lació horitzontal (Hz)
|
static constexpr float ORBIT_FREQUENCY_X = 0.8f; // Velocitat oscil·lació horitzontal (Hz)
|
||||||
static constexpr float ORBIT_FREQUENCY_Y = 1.2f; // Velocitat oscil·lació vertical (Hz)
|
static constexpr float ORBIT_FREQUENCY_Y = 1.2f; // Velocitat oscil·lació vertical (Hz)
|
||||||
static constexpr float ORBIT_PHASE_OFFSET = 1.57f; // Desfasament entre X i Y (90° per circular)
|
static constexpr float ORBIT_PHASE_OFFSET = 1.57f; // Desfasament entre X i Y (90° per circular)
|
||||||
|
|
||||||
// Constants d'ombra del logo
|
// Constants d'ombra del logo
|
||||||
static constexpr float SHADOW_DELAY = 0.5f; // Retard temporal de l'ombra (segons)
|
static constexpr float SHADOW_DELAY = 0.5f; // Retard temporal de l'ombra (segons)
|
||||||
|
|||||||
Reference in New Issue
Block a user