【问题标题】:libGDX Mouse Input and scene2d -- Not Receiving Proper Input?libGDX 鼠标输入和scene2d——没有接收到正确的输入?
【发布时间】:2015-05-16 22:10:55
【问题描述】:

我的按钮有问题。

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

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

【问题讨论】:

    标签: java libgdx scene2d


    【解决方案1】:

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

        Gdx.input.setInputProcessor(stage);
    

    另外,如果您不打算将其他 Actor 添加到您的舞台,我会直接将按钮添加到舞台。

    【讨论】:

    • 您好,感谢您的回复!我的主类扩展了ApplicationAdapter,我的render()方法包括清屏,调用stage.act(),然后调用stage.draw()
    • 编辑了我之前的帖子。尝试使用 .setInputProcessor(stage) 并告诉我是否可行。
    • 我试过了。问题不在于舞台没有获得输入事件,而是输入没有正确映射到屏幕(如果这有意义的话)。就像我在 OP 中所说的那样,单击 ABOVE 按钮会处理“点击”,但单击 ON 按钮不会产生任何结果。
    • 我挖掘了 API 并找到了替代解决方案。尝试在您的类中实现 InputProcessor 并将程序的输入处理器设置为该类的实例。更多信息可以在 API 上找到here
    猜你喜欢
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    相关资源
    最近更新 更多