我创建了一个带有三个可绘制图像的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 :(得分:0)
您是否检查了调用changed()
方法的频率?使用Gdx.app.log()
进行日志记录。或者尝试使用不同的监听器,例如按钮ClickedListener
。
您也可以让自己拥有Button class MyButton extends Button
以保持更清晰的代码。 Here是我解决它的方式。