Java libgdx可点击图像不工作

Java libgdx可点击图像不工作,java,libgdx,Java,Libgdx,我在libgdx中有一个菜单屏幕,我有一个文本按钮,它启动了一个像这样的新游戏 textButton.addListener(new ChangeListener() { public void changed (ChangeEvent event, Actor actor) { g.setScreen( new level1(g)); } }); 它看起来像垃圾,所以我把它改成了一张图片 playbuttontexture = new Texture(Gdx.

我在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);


现在当我点击它时什么都没发生?我做错了什么?

这里的问题是
Image
不再触发
changed(…)
事件。当状态从单击变为未单击时,此事件仅由您以前使用的
TextButton
触发,反之亦然。它也可以在其他情况下触发,因为正如JavaDoc所述,它是一种“通用”事件,但这因参与者而异


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

这里的问题是
Image
不再触发
changed(…)
事件。当状态从单击变为未单击时,此事件仅由您以前使用的
TextButton
触发,反之亦然。它也可以在其他情况下触发,因为正如JavaDoc所述,它是一种“通用”事件,但这因参与者而异


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

对我来说,这就是我实现代码时的样子(我遇到了类似的问题。没有人能很好地为我指出正确的查看位置。)


对我来说,这就是我实现代码时的样子(我也遇到了类似的问题。没有人能很好地为我指出正确的查看位置)


将其更改为
ClickListener
,并改用
clicked(…)
方法。图像不会触发
changed()
事件。@没有人应该将答案放在“答案”部分。即使它们很短。@P.T.是的,对不起。有时我没有时间写半个以上的句子。将它改为
ClickListener
,然后使用
clicked(…)
方法。图像不会触发
changed()
事件。@没有人应该将答案放在“答案”部分。即使它们很短。@P.T.是的,对不起。有时我只是没有时间写半句以上。
playbutton.addListener(new ChangeListener() {
    public void changed (ChangeEvent event, Actor actor) {
        g.setScreen( new level1(g));
    }
});
playbutton.addListener( new ClickListener(){
    @Override
    public void clicked (InputEvent event, float x, float y) {
    //your code to do stuff when the button is clicked  

    }

});