v0.6.2c: improved how the game handles music volume and asset handling

This commit is contained in:
Evan Debenham 2017-11-12 23:01:44 -05:00 committed by Evan Debenham
parent 759ff2fb9d
commit 31042228ff
8 changed files with 7 additions and 15 deletions

View File

@ -29,8 +29,6 @@ import android.telephony.TelephonyManager;
import com.watabou.noosa.Game;
import java.io.IOException;
public enum Music implements MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener {
INSTANCE;
@ -41,6 +39,7 @@ public enum Music implements MediaPlayer.OnPreparedListener, MediaPlayer.OnError
private boolean looping;
private boolean enabled = true;
private float volume = 1f;
public void play( String assetName, boolean looping ) {
@ -67,8 +66,9 @@ public enum Music implements MediaPlayer.OnPreparedListener, MediaPlayer.OnError
mp.setOnPreparedListener( this );
mp.setOnErrorListener( this );
mp.prepareAsync();
afd.close();
} catch (IOException e) {
} catch (Exception e) {
player = null;
@ -85,6 +85,7 @@ public enum Music implements MediaPlayer.OnPreparedListener, MediaPlayer.OnError
player = mp;
player.start();
player.setLooping(looping);
player.setVolume(volume, volume);
}
@Override
@ -116,6 +117,7 @@ public enum Music implements MediaPlayer.OnPreparedListener, MediaPlayer.OnError
}
public void volume( float value ) {
volume = value;
if (player != null) {
player.setVolume( value, value );
}

View File

@ -149,6 +149,7 @@ public class ShatteredPixelDungeon extends Game {
}
Music.INSTANCE.enable( music() );
Music.INSTANCE.volume( musicVol()/10f );
Sample.INSTANCE.enable( soundFx() );
Sample.INSTANCE.volume( SFXVol()/10f );
@ -392,7 +393,6 @@ public class ShatteredPixelDungeon extends Game {
public static void music( boolean value ) {
Music.INSTANCE.enable( value );
Music.INSTANCE.volume( musicVol()/10f );
Preferences.INSTANCE.put( Preferences.KEY_MUSIC, value );
}

View File

@ -50,7 +50,6 @@ public class BadgesScene extends PixelScene {
super.create();
Music.INSTANCE.play( Assets.THEME, true );
Music.INSTANCE.volume( ShatteredPixelDungeon.musicVol() / 10f );
uiCamera.visible = false;

View File

@ -162,7 +162,6 @@ public class GameScene extends PixelScene {
public void create() {
Music.INSTANCE.play( Assets.TUNE, true );
Music.INSTANCE.volume( ShatteredPixelDungeon.musicVol()/10f );
ShatteredPixelDungeon.lastClass(Dungeon.hero.heroClass.ordinal());

View File

@ -36,7 +36,6 @@ import com.shatteredpixel.shatteredpixeldungeon.windows.WndStory;
import com.watabou.noosa.Camera;
import com.watabou.noosa.Game;
import com.watabou.noosa.RenderedText;
import com.watabou.noosa.audio.Music;
import com.watabou.noosa.audio.Sample;
import java.io.FileNotFoundException;
@ -159,10 +158,7 @@ public class InterlevelScene extends PixelScene {
case FADE_OUT:
message.alpha( p );
if (mode == Mode.CONTINUE || (mode == Mode.DESCEND && Dungeon.depth == 1)) {
Music.INSTANCE.volume( p * (ShatteredPixelDungeon.musicVol()/10f));
}
if ((timeLeft -= Game.elapsed) <= 0) {
Game.switchScene( GameScene.class );
}

View File

@ -60,7 +60,6 @@ public class RankingsScene extends PixelScene {
super.create();
Music.INSTANCE.play( Assets.THEME, true );
Music.INSTANCE.volume( ShatteredPixelDungeon.musicVol() / 10f );
uiCamera.visible = false;

View File

@ -24,7 +24,6 @@ package com.shatteredpixel.shatteredpixeldungeon.scenes;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.RatSprite;
@ -74,7 +73,6 @@ public class SurfaceScene extends PixelScene {
super.create();
Music.INSTANCE.play( Assets.HAPPY, true );
Music.INSTANCE.volume( ShatteredPixelDungeon.musicVol() / 10f );
uiCamera.visible = false;

View File

@ -52,7 +52,6 @@ public class TitleScene extends PixelScene {
super.create();
Music.INSTANCE.play( Assets.THEME, true );
Music.INSTANCE.volume( ShatteredPixelDungeon.musicVol() / 10f );
uiCamera.visible = false;