afegides musiques
afegit control de brillo al starfield
This commit is contained in:
@@ -103,9 +103,12 @@ float Starfield::calcular_escala(const Estrella& estrella) const {
|
||||
float Starfield::calcular_brightness(const Estrella& estrella) const {
|
||||
// Interpolació lineal: estrelles properes (vora) més brillants
|
||||
// distancia_centre: 0.0 (centre, llunyanes) → 1.0 (vora, properes)
|
||||
return Defaults::Brightness::STARFIELD_MIN +
|
||||
float brightness_base = Defaults::Brightness::STARFIELD_MIN +
|
||||
(Defaults::Brightness::STARFIELD_MAX - Defaults::Brightness::STARFIELD_MIN) *
|
||||
estrella.distancia_centre;
|
||||
|
||||
// Aplicar multiplicador i limitar a 1.0
|
||||
return std::min(1.0f, brightness_base * multiplicador_brightness_);
|
||||
}
|
||||
|
||||
// Actualitzar posicions de les estrelles
|
||||
@@ -135,6 +138,11 @@ void Starfield::actualitzar(float delta_time) {
|
||||
}
|
||||
}
|
||||
|
||||
// Establir multiplicador de brightness
|
||||
void Starfield::set_brightness(float multiplier) {
|
||||
multiplicador_brightness_ = std::max(0.0f, multiplier); // Evitar valors negatius
|
||||
}
|
||||
|
||||
// Dibuixar totes les estrelles
|
||||
void Starfield::dibuixar() {
|
||||
if (!shape_estrella_->es_valida()) {
|
||||
|
||||
@@ -42,6 +42,7 @@ class Starfield {
|
||||
|
||||
// Setters per ajustar paràmetres en temps real
|
||||
void set_punt_fuga(const Punt& punt) { punt_fuga_ = punt; }
|
||||
void set_brightness(float multiplier);
|
||||
|
||||
private:
|
||||
// Estructura interna per cada estrella
|
||||
@@ -75,6 +76,7 @@ class Starfield {
|
||||
SDL_FRect area_; // Àrea activa
|
||||
float radi_max_; // Distància màxima del centre al límit de pantalla
|
||||
int densitat_; // Nombre total d'estrelles
|
||||
float multiplicador_brightness_{1.0f}; // Multiplicador de brillantor (1.0 = default)
|
||||
};
|
||||
|
||||
} // namespace Graphics
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <iostream>
|
||||
|
||||
#include "core/audio/audio.hpp"
|
||||
#include "core/audio/audio_cache.hpp"
|
||||
#include "core/defaults.hpp"
|
||||
#include "core/rendering/sdl_manager.hpp"
|
||||
#include "game/escenes/escena_joc.hpp"
|
||||
@@ -161,6 +162,13 @@ auto Director::run() -> int {
|
||||
// Inicialitzar sistema d'audio
|
||||
Audio::init();
|
||||
|
||||
// Precachejar música per evitar lag al començar
|
||||
AudioCache::getMusic("title.ogg");
|
||||
if (Options::console) {
|
||||
std::cout << "Música precachejada: "
|
||||
<< AudioCache::getMusicCacheSize() << " fitxers\n";
|
||||
}
|
||||
|
||||
// Bucle principal de gestió d'escenes
|
||||
while (GestorEscenes::actual != GestorEscenes::Escena::EIXIR) {
|
||||
switch (GestorEscenes::actual) {
|
||||
|
||||
Reference in New Issue
Block a user