2014-11-24 82 views
1

在我的游戏我有一个组织并播放所有音乐的音乐类:停止启动音乐 - Libgdx的Java

public class MusicPlayer extends Game{ 
(..) 
    public static void MainBackgroundMusic(){ 

    if(backgroundMusicPlaying != true){ 
     backgroundMusic.play(); 
     backgroundMusic.setVolume(0.1f); 
     backgroundMusic.setLooping(true); 
     backgroundMusicPlaying = true; 
     } 

    } 

    public static void BackgroundStop(){ 
    if(backgroundMusicPlaying = true){ 
     backgroundMusic.stop(); 
     } 
    } 

我希望能够停止播放音乐,在各级然后重新启动再次。但是,当我尝试并重新启动它不会再次播放。

我所说的音乐在游戏开始玩:

public OptionScreen(final Game1 gam){ 
    (..) 
    MusicPlayer.MainBackgroundMusic(); 
    (..) 
    } 
    public void render(float delta) { 
     (..) 
} 

水平开始时那么我所说的停止:

public InsaneLevels(Game1 gam) { 
     (..) 
     MusicPlayer.BackgroundStop(); 
     (..) 
    } 
    public void render(float delta) { 
     (..) 
} 

当我回去的启动它不会重播。

回答

1

将stopMusicPlaying设置为false在停止方法中。猜你忘了这个。 你也应该有这样的:

backgroundMusicPlaying == true

相反的:

backgroundMusicPlaying = true

public static void BackgroundStop() { 
     if (backgroundMusicPlaying == true) { 
      backgroundMusic.stop(); 
      backgroundMusicPlaying = false; 
     } 
    }