2014-11-24 3 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

Установите backgroundMusicPlaying на false внутри вашего метода остановки. Угадайте, что вы это забыли. Кроме того, вы должны иметь это:

backgroundMusicPlaying == true

Вместо:

backgroundMusicPlaying = true

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