Difuminado Música

LibGDX no tiene un método directo para difuminar música y, pues, codifiqué el mío.

Lo primero es declarar tres tipos de interpolaciones lineales, una para aumentar el volumen, otra para disminuirlo y la última como base.

En la clase de MineChallenge.java:

private final FloatAction fadeActionIn = new FloatAction(0.0f, 1.0f);
private final FloatAction fadeActionOut = new FloatAction(1.0f, 0.0f);
private FloatAction fadeAction;

En el constructor declaro el tiempo de fadeActionIn y fadeActionOut.

fadeActionIn.setDuration(3.0f);
fadeActionOut.setDuration(2.0f);

En el método de «spawn()», que comienza el reto de minas, comienzo la música así:

fadeActionIn.restart();
fadeAction = fadeActionIn;

music.play();

Para disipar la música uso este código:

fadeActionOut.restart();
fadeAction = fadeActionOut;

Por último, en el método de «act(float delta)» se actualiza el volumen de la música con este código:

if (music.isPlaying()) {
  fadeAction.act(delta);
  music.setVolume(fadeAction.getValue());
  if (music.getVolume() == 0) music.stop();
}

La musica fue generada con inteligencia artificial por Amaz1ngDragon y se llama fast paced boss battle.

Y así se escucha:

Únete a otros 35 suscriptores

Deja una respuesta

Anuncios


Anuncios