Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java (Libgdx)让舞台上的一切都变得黑暗_Java_Android_Libgdx - Fatal编程技术网

Java (Libgdx)让舞台上的一切都变得黑暗

Java (Libgdx)让舞台上的一切都变得黑暗,java,android,libgdx,Java,Android,Libgdx,我正在开发一个LibGDX游戏。 我想要在我的舞台上有所有的元素(几个标签、按钮等),但我也希望在主spritebatch上画一些东西,当弹出窗口打开时,这些东西会变暗并且不可触摸,用户可以在其中进行交互 通过将舞台从输入处理器中取出,使其不响应用户输入是非常简单的 但是,如何使舞台和spriteBatch中的一切都变暗,以便用户能够清楚地看到,他必须首先与弹出窗口交互 我希望它有点像这样 但是使用LibGDX stage和spritebatch。如果您添加1x1像素的透明黑色图像,该图像在弹出

我正在开发一个LibGDX游戏。 我想要在我的舞台上有所有的元素(几个标签、按钮等),但我也希望在主spritebatch上画一些东西,当弹出窗口打开时,这些东西会变暗并且不可触摸,用户可以在其中进行交互

通过将舞台从输入处理器中取出,使其不响应用户输入是非常简单的

但是,如何使舞台和spriteBatch中的一切都变暗,以便用户能够清楚地看到,他必须首先与弹出窗口交互

我希望它有点像这样


但是使用LibGDX stage和spritebatch。

如果您添加1x1像素的透明黑色图像,该图像在弹出窗口之前拉伸到屏幕大小,则无需更改inputprocessor。透明图像下演员的可触摸性自动禁用。因此,您不需要结束并再次开始spritebatch,这对性能不好


因此,您无需更改spritebatch,也无需使用额外的gl glear调用,只需添加一个透明区域即可完成此操作。

您的意思是,在绘制舞台之后,应该绘制一个不透明度约为一半的黑色像素,然后再绘制弹出窗口?我想我仍然可以通过图像点击到半透明像素的“后面”。是的,这就是我的意思。阶段层次结构将像你的屏幕截图中的那样:showPopubButton->透明图像->弹出窗口WidgeTook我添加了像素的东西,它工作了。spritebatch中是否有一个选项现在允许用户点击它所绘制的东西,或者我必须从我的输入多路复用器中取出舞台才能实现我想要的?你能检查一下你的透明图像的可触摸区域吗?如果你将其设置为enabled,它应该会阻止你在透明区域下触摸,这意味着你有一个模式弹出窗口。我没有找到纹理或精灵的选项“touchable”。图像具有.setTouchable(Touchable.enabled)选项,但我仍然可以单击它。哪个imagecontainer具有该功能?