单击时如何更改图像按钮?

时间:2019-05-01 19:10:27

标签: libgdx imagebutton

我正在尝试在LibGDX中制作一个声音系统,在该系统中,您按下图像按钮,然后该图像按钮变成另一个图标,例如打开和关闭声音标志。我不知道该怎么做,因为一旦我为imagebutton创建了一个新的构造函数,它就会丢失监听器内部的代码。我觉得这里需要使用某种循环,并试图使其在循环内工作,但似乎不起作用。

这是我的代码:

musicBtn.addListener(new ChangeListener() { //musicBtn is the imageButton


               @Override
               public void changed(ChangeEvent event, Actor actor) {

                   if(GameManager.getInstance().gameData.isMusicOn()){//if the music is on and you press the music button then this turns it off
                       GameManager.getInstance().gameData.setMusicOn(false);
                       GameManager.getInstance().stopMusic();


                   } else {//if the music is off and players presses music button it turns on
                       GameManager.getInstance().gameData.setMusicOn(true);
                       GameManager.getInstance().playMusic();

                   }

                   GameManager.getInstance().saveData(); //method that saves the data

               }
           });

1 个答案:

答案 0 :(得分:0)

您可以将Drawable传递给名为imageChecked的ImageButton构造函数:

ImageButton (Drawable imageUp, Drawable imageDown, Drawable imageChecked)

例如,这可能是声音异常的迹象。每当您按下按钮时,请检查音乐是否正在播放,如果将其设置为true,则将图像更改为声音关闭标志,否则将其设置为false,并将其更改回原来的状态。

if(GameManager.getInstance().gameData.isMusicOn()){
     ...
     musicBtn.setChecked(true)
}else{
    ...
    musicBtn.setChecked(false)
}