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

View File

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

View File

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

View File

@ -162,7 +162,6 @@ public class GameScene extends PixelScene {
public void create() { public void create() {
Music.INSTANCE.play( Assets.TUNE, true ); Music.INSTANCE.play( Assets.TUNE, true );
Music.INSTANCE.volume( ShatteredPixelDungeon.musicVol()/10f );
ShatteredPixelDungeon.lastClass(Dungeon.hero.heroClass.ordinal()); 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.Camera;
import com.watabou.noosa.Game; import com.watabou.noosa.Game;
import com.watabou.noosa.RenderedText; import com.watabou.noosa.RenderedText;
import com.watabou.noosa.audio.Music;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
@ -159,10 +158,7 @@ public class InterlevelScene extends PixelScene {
case FADE_OUT: case FADE_OUT:
message.alpha( p ); 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) { if ((timeLeft -= Game.elapsed) <= 0) {
Game.switchScene( GameScene.class ); Game.switchScene( GameScene.class );
} }

View File

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

View File

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

View File

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