Java libGDX鼠标输入和scene2d--没有收到正确的输入?

Java libGDX鼠标输入和scene2d--没有收到正确的输入?,java,libgdx,scene2d,Java,Libgdx,Scene2d,我的钮扣有问题 stage = new Stage(); Skin skin = new Skin(Gdx.files.internal("assets/uiskin.json")); Table table = new Table(); table.setDebug(true); table.setFillParent(true); stage.addActor(table); Button button = new Button(skin, "default"); table.add

我的钮扣有问题

stage = new Stage();

Skin skin = new Skin(Gdx.files.internal("assets/uiskin.json"));

Table table = new Table();
table.setDebug(true);
table.setFillParent(true);
stage.addActor(table);

Button button = new Button(skin, "default");

table.add(button);

上面的代码创建了一个按钮,在屏幕中央有正确的文本,但输入被破坏。当我点击按钮时,它不会注册输入。但是,当我单击按钮上方时,它会注册输入。我做错了什么?

关于您发布的代码,您需要将输入处理器设置为stage。通过这样做,libGDX将使用它作为侦听器来注册发生的事件。尝试将其添加到您的代码块中:

    Gdx.input.setInputProcessor(stage);

另外,如果您不打算在舞台上添加其他演员,我会直接在舞台上添加按钮。

嘿,谢谢您的回复!我的主类扩展了ApplicationAdapter,我的render()方法包括清除屏幕、调用stage.act(),然后stage.draw()编辑我的上一篇文章。尝试使用.setInputProcessor(stage)并告诉我是否有效。我已经尝试过了。问题不在于stage没有获取输入事件,而在于输入没有正确映射到屏幕(如果有意义的话)。正如我在OP中所说的,点击按钮上方会进行“点击”,但点击按钮不会产生任何效果。我在API中进行了深入研究,找到了另一种解决方案。尝试在类中实现InputProcessor,并将程序的输入处理器设置为该类的实例。更多信息可以在API上找到