From 783886b9b261420bd48edc4d607764bb2ce6e246 Mon Sep 17 00:00:00 2001 From: jorsi Date: Wed, 3 Jun 2020 18:22:48 -0400 Subject: [PATCH] fix space music fading in when ending game by adding separate background volume function --- script/audio.js | 20 +++++++++++++++++++- script/space.js | 8 +++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/script/audio.js b/script/audio.js index 97c39e3..f6a85ed 100644 --- a/script/audio.js +++ b/script/audio.js @@ -191,7 +191,25 @@ var AudioEngine = { }); } }, - setVolume: function (volume, s) { + setBackgroundMusicVolume: function (volume, s) { + if (AudioEngine._master == null) return; // master may not be ready yet + if (volume === undefined) { + volume = 1.0; + } + if (s === undefined) { + s = 1.0; + } + + // cancel any current schedules and then ramp + var currentBackgroundGainValue = AudioEngine._currentBackgroundMusic.envelope.gain.value; + AudioEngine._currentBackgroundMusic.envelope.gain.cancelScheduledValues(AudioEngine._audioContext.currentTime); + AudioEngine._currentBackgroundMusic.envelope.gain.setValueAtTime(currentBackgroundGainValue, AudioEngine._audioContext.currentTime); + AudioEngine._currentBackgroundMusic.envelope.gain.linearRampToValueAtTime( + volume, + AudioEngine._audioContext.currentTime + s + ); + }, + setMasterVolume: function (volume, s) { if (AudioEngine._master == null) return; // master may not be ready yet if (volume === undefined) { volume = 1.0; diff --git a/script/space.js b/script/space.js index b889f25..93cfb72 100644 --- a/script/space.js +++ b/script/space.js @@ -400,8 +400,8 @@ var Space = { } delete Outside._popTimeout; - AudioEngine.setVolume(1.0); AudioEngine.playBackgroundMusic(AudioLibrary.MUSIC_ENDING); + $('#hullRemaining', Space.panel).animate({opacity: 0}, 500, 'linear'); Space.ship.animate({ top: '350px', @@ -558,8 +558,10 @@ var Space = { lowerVolume: function () { if (Space.done) return; + // lower audio as ship gets further into space - var newVolume = 1.0 - (Space.altitude / 60); - AudioEngine.setVolume(newVolume, .3); + var progress = Space.altitude / 60; + var newVolume = 1.0 - progress; + AudioEngine.setBackgroundMusicVolume(newVolume, .3); } };