forked from jaildesigner-jailgames/jaildoctors_dilemma
LoadingScreen: afegits picos de soroll als silencis
This commit is contained in:
@@ -331,12 +331,13 @@ void LoadingScreen::update() {
|
||||
|
||||
// Actualizar la carga según el estado actual
|
||||
switch (state_) {
|
||||
case State::SILENT1:
|
||||
case State::DATA1:
|
||||
case State::SILENT2:
|
||||
case State::DATA2:
|
||||
// Por ahora no hacen nada específico
|
||||
// Tú definirás la lógica de cada estado aquí
|
||||
break;
|
||||
case State::SILENT1:
|
||||
case State::SILENT2:
|
||||
updateSilent(DELTA_TIME);
|
||||
break;
|
||||
case State::HEADER1:
|
||||
case State::HEADER2:
|
||||
@@ -429,6 +430,7 @@ void LoadingScreen::printProgramName() {
|
||||
Screen::get()->setRendererSurface(previous_renderer);
|
||||
}
|
||||
|
||||
// Actualiza la portadora
|
||||
void LoadingScreen::updateCarrier(float delta_time) {
|
||||
constexpr float CARRIER_BASE_SPEED = -250.0F;
|
||||
constexpr float CARRIER_HEIGHT = HEADER_DATAROW_HEIGHT;
|
||||
@@ -445,4 +447,26 @@ void LoadingScreen::updateCarrier(float delta_time) {
|
||||
}
|
||||
|
||||
carrier_.total_time += delta_time;
|
||||
}
|
||||
|
||||
// Actualiza el ruido durante el tiempo de silencio
|
||||
void LoadingScreen::updateSilent(float delta_time) {
|
||||
constexpr float NOISE_THRESHOLD = 0.35F;
|
||||
|
||||
// Oscilación compuesta para simular picos de ruido
|
||||
const float modulation = std::sin(noise_.total_time * 4.2F) * std::sin(noise_.total_time * 1.7F + 0.5F);
|
||||
noise_.value = std::fabs(modulation); // rango [0.0, 1.0]
|
||||
|
||||
// Detecta cruce de umbral solo si venía de abajo
|
||||
if (noise_.value > NOISE_THRESHOLD && !noise_.crossed) {
|
||||
noise_.crossed = true;
|
||||
current_border_type_ = (current_border_type_ == Border::RED) ? Border::CYAN : Border::RED;
|
||||
}
|
||||
|
||||
// Restablece el flag cuando baja del umbral
|
||||
if (noise_.value < NOISE_THRESHOLD) {
|
||||
noise_.crossed = false;
|
||||
}
|
||||
|
||||
noise_.total_time += delta_time;
|
||||
}
|
||||
Reference in New Issue
Block a user