2016-12-23 3 views
0

Я создал изображение с тремя изображениями с возможностью рисования; один - кнопка, кнопка вниз и кнопка отмечена. Его цель - звук ВКЛ и ВЫКЛ для звука игры. Звук выключен, необходимо проверить изображение.LibGdx ImageButton играет звук

Я написал такой код:

soundButton = new ImageButton(new TextureRegionDrawable(soundTexture1), 
      new TextureRegionDrawable(soundTexture2), new TextureRegionDrawable(soundTexture3)); 
    stage.addActor(soundButton); 

    soundButton.setPosition(Constants.WORLD_WIDTH/4 + 300f, Constants.WORLD_HEIGHT/4, Align.bottomLeft); 
soundButton.addListener(new ChangeListener(){ 
     @Override 
     public void changed(ChangeEvent event, Actor actor) { 
      if(!game.soundBool) 
       game.soundBool=true; 
       else 
        game.soundBool=false; 
     } 
    }); 

Здесь soundBool изначально ложь и игра звуков будет играть, когда она ложна. Как только я это сделаю, звуки не должны играть. Этот логический процесс работает хорошо.

Проблема в том, что после того, как я проверил кнопку (звук выключен), звук постоянно отключается. Нажатие кнопки не работает должным образом.

Как изменить код, чтобы хорошо его использовать?

ответ

0

Вы проверили, как часто вызывается метод changed()? Используйте Gdx.app.log() для регистрации. Или попробуйте использовать другой прослушиватель, например ClickedListener для кнопки.

Вы также можете сделать свою собственную кнопку, class MyButton extends Button, чтобы сохранить более чистый код. Here как я решил.