【问题标题】:(Libgdx) make everything in stage and spritebatch dark(Libgdx) 使舞台和 spritebatch 中的所有内容变暗
【发布时间】:2016-02-14 22:48:32
【问题描述】:

我正在开发一个 LibGDX 游戏。 我到了一个地步,我想在我的舞台上拥有所有元素(几个标签、按钮等),而且我在主 spritebatch 上绘制的东西变暗并且当用户可以打开弹出窗口时无法触摸互动。

使舞台不响应用户输入非常简单,只需将其从输入处理器中取出即可。

但是如何使舞台和 spriteBatch 中的所有内容变暗,以便用户可以清楚地看到他必须首先与弹出窗口进行交互。

我希望它有点像

但带有 L​​ibGDX 阶段和 spritebatch。

【问题讨论】:

    标签: java android libgdx


    【解决方案1】:

    如果您在弹出窗口之前添加 1x1 像素透明黑色图像,该图像被拉伸到屏幕大小,则无需更改输入处理器。透明图像下演员的可触摸自动禁用。所以你不需要结束并重新开始 spritebatch,这对性能不利。

    因此,您无需更改 spritebatch 或使用额外的 gl glear 调用即可执行此操作,只需添加透明区域即可。

    【讨论】:

    • 你的意思是一个黑色像素,大约一半不透明度,应该在舞台绘制之后绘制,然后应该绘制弹出窗口?我想我仍然可以通过图像点击到半透明像素的“后面”。
    • 是的,这就是我的意思。阶段层次结构将与您的屏幕截图中的一样: ShowPopupButton -> 透明图像 -> 弹出小部件
    • 好的,我添加了像素的东西,它可以工作了。 spritebatch 中是否有一个选项现在允许用户点击它所绘制的东西,或者我是否必须从我的输入多路复用器中取出舞台才能实现我想要的?
    • 您能检查一下透明图像的可触摸区域吗?如果您将其设置为启用,它应该会阻止您触摸透明区域,这意味着您有一个模式弹出窗口。
    • 我没有找到纹理和精灵的“可触摸”选项。图像具有 .setTouchable(Touchable.enabled) 选项,但我仍然可以单击它。哪个 imagecontainer 有这个功能?
    猜你喜欢
    • 2014-03-05
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 2017-07-06
    • 2015-07-29
    相关资源
    最近更新 更多