【问题标题】:Libgdx : setting another screen, but still buttons from old screen activeLibgdx:设置另一个屏幕,但旧屏幕上的按钮仍然处于活动状态
【发布时间】:2013-08-11 08:53:55
【问题描述】:

在我的 libgdx game 中,我有 2 个屏幕,menulist。 当我在menu 屏幕中单击label 时,我会执行setscreen(list)。 新屏幕出现,菜单屏幕及其标签消失。

但是当我点击相同的位置时(从标签所在的菜单屏幕,但这些标签当然没有显示,因为我已经改变了屏幕)点击事件响应。为什么?

注意:我的列表屏幕目前没有任何小部件的事件处理程序。

在切换屏幕时,除了setscreen(anotherscreen) 之外,我还需要做些什么来停用旧屏幕吗?

【问题讨论】:

    标签: java android libgdx


    【解决方案1】:

    我改变了这个:

    我使用该屏幕的阶段变量将输入处理器移动到该屏幕的 show() 方法

    public void show() {
        ...
        Gdx.input.setInputProcessor(stage);
    
    }
    

    在我只在屏幕的构造函数中设置它之前,所以即使我正在改变屏幕,输入处理器仍然连接到最后创建的屏幕的阶段

    【讨论】:

    • 这对我有用。你能稍微解释一下这是如何一起工作的吗?为什么?
    【解决方案2】:

    上面的答案对我有用,因为我不在第二个屏幕中使用 InputProcessor。

    我的解决方案是在 setScreen 之后将 Inputprocessor 设置为 null。

    Gdx.app.getApplicationListener().setScreen(new Screen()); Gdx.input.setInputProcessor(null);

    【讨论】:

      【解决方案3】:

      这让我很头疼。我在show 方法中更改了屏幕,但之后调用了Gdx.input.setInputProcessor(stage)。新屏幕的show方法运行后,该方法仍然完成,从而恢复到上一阶段。

      因此,请确保在更换屏幕之前致电 Gdx.input.setInputProcessor(stage) 或在更换屏幕后致电 return

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多