2016-12-23 1 views
0

Ich habe ein ImageButton mit drei Zeichenbildern erstellt; man ist button-up, button-down und button checked. Sein Zweck ist es, ON und OFF Sound für das Spiel.Once Sound ist OFF, überprüft Bild sollte angezeigt werden.LibGdx ImageButton Wiedergabe von Sound

ich den Code wie folgt geschrieben:

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; 
     } 
    }); 

Hier soundBool zunächst falsch und Game-Sounds spielen, wenn es falsch ist. Sobald ich es wahr mache, sollten Sounds nicht spielen. Dieser boolean funktioniert gut.

Problem ist, dass, sobald ich die Taste (Ton aus) überprüft Sound immer aus ist.Again Button klicken funktioniert nicht wie erwartet.

Wie ändere ich den Code, um es gut zu arbeiten?

Antwort

0

Haben Sie überprüft, wie oft die changed()-Methode aufgerufen wird? Verwenden Sie Gdx.app.log() für die Protokollierung. Oder versuchen Sie es mit einem anderen Listener wie ClickedListener für die Schaltfläche.

Sie können auch eigene Button, class MyButton extends Button, um einen saubereren Code zu halten. Here ist, wie ich es gelöst habe.

Verwandte Themen