libgdx可点击图像不起作用

时间:2014-05-09 22:20:22

标签: java libgdx

我在libgdx中有一个菜单屏幕,我有一个文本按钮,可以启动这样的新游戏。

textButton.addListener(new ChangeListener() {
    public void changed (ChangeEvent event, Actor actor) {
        g.setScreen( new level1(g));
    }
});

它看起来像垃圾,所以我把它改成了图像。

playbuttontexture = new Texture(Gdx.files.internal("data/playbutton.png"));
playbuttontexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);

TextureRegion playbuttonregion = new TextureRegion(playbuttontexture, 0, 0, 512, 256);//powers of 2

playbutton = new Image(playbuttonregion);
playbutton.setSize(512,256);
playbutton.setBounds(width/2-playbutton.getWidth()/2, height/2-playbutton.getHeight()/2, 512, 256);
//playbutton.setOrigin(playbutton.getWidth()/2, playbutton.getHeight()/2);
playbutton.setPosition(width/2-playbutton.getWidth()/2, height/2-playbutton.getHeight()/2);

playbutton.addListener(new ChangeListener() {
    public void changed (ChangeEvent event, Actor actor) {
        g.setScreen( new level1(g));
    }
});

现在当我点击它时没有任何反应?我做错了什么?

2 个答案:

答案 0 :(得分:4)

此处的问题是Image不再触发changed(...)事件。此事件仅由您之前使用的TextButton触发,此时状态从点击更改为未点击,反之亦然。它也可以在其他情况下被触发,因为它是一种“通用”事件,正如JavaDoc所述,但因演员而异。

将其更改为ClickListener并改为使用clicked(...)方法。此事件应由scene2d.ui包中的所有参与者触发。

答案 1 :(得分:0)

对我而言,这就是我实施代码时的样子(我遇到了类似的问题。没有人能够把我指向正确的位置。)

playbutton.addListener( new ClickListener(){
    @Override
    public void clicked (InputEvent event, float x, float y) {
    //your code to do stuff when the button is clicked  

    }

});