libGDX:ClickListener中的延迟

时间:2017-07-24 22:05:33

标签: java libgdx clicklistener

我想在点击此按钮时更改按钮样式。 这是我的解决方案:

show(){
   ...
   Gdx.input.setInputProcessor(stage);
   stage.add(myButton); 
}

public void render(float delta){
   final boolean buttonSwitch;
   myButton.addListener(new ClickListener() {
        public void touchUp (InputEvent event, float x, float y, int pointer, int button) {

            if(buttonSwitch == true)
            {
                  myButton.setStyle(style1);
            }
            else 
            {
                  myButton.setStyle(style2);
            }
        }
    });
}

问题是有时候我的点击次数会被忽略,样式也不会改变。我必须点击三次或更多次才能得到结果。

1 个答案:

答案 0 :(得分:3)

在渲染方法中添加侦听器?为什么!!

从render方法中删除以下代码段并保留在show()方法

final boolean buttonSwitch;
myButton.addListener(new ClickListener() {
        public void touchUp (InputEvent event, float x, float y, int pointer, int button) {

             myButton.setStyle(buttonSwitch?style1:style2);
             buttonSwitch=!buttonSwitch;   
        }
    });