Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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 设置ImageTextButton的fontColor在一个屏幕上有效,但在另一个屏幕上无效-LIBGDX Scene2D_Java_Libgdx_Shader_Fragment Shader - Fatal编程技术网

Java 设置ImageTextButton的fontColor在一个屏幕上有效,但在另一个屏幕上无效-LIBGDX Scene2D

Java 设置ImageTextButton的fontColor在一个屏幕上有效,但在另一个屏幕上无效-LIBGDX Scene2D,java,libgdx,shader,fragment-shader,Java,Libgdx,Shader,Fragment Shader,我有两个ImageTextButton,这是我在主菜单屏幕和游戏屏幕中设置它们的方式: ImageTextButton.ImageTextButtonStyle ibs = new ImageTextButton.ImageTextButtonStyle(); ibs.font = skin.getFont("scorescombo3-font160"); ibs.fontColor = new Color(1.0f, 0.6f, 0.0f, 0.65f); ib

我有两个ImageTextButton,这是我在主菜单屏幕和游戏屏幕中设置它们的方式:

    ImageTextButton.ImageTextButtonStyle ibs = new ImageTextButton.ImageTextButtonStyle();
    ibs.font = skin.getFont("scorescombo3-font160");
    ibs.fontColor = new Color(1.0f, 0.6f, 0.0f, 0.65f);
    ibs.up = new TextureRegionDrawable(skin.getRegion("level_name"));
    level_no_button = new ImageTextButton("button", ibs);
我使用从Hiero导出的相同字体文件

在我的游戏屏幕中我看到的文本是橙色,就像它应该看到的那样,但在我的主菜单屏幕中它仍然是白色,即使Alpha渲染正确


我在我的代码中搜索了所有level\u no\u按钮颜色设置,没有一行我将颜色设置为白色。为什么颜色设置在一个屏幕上工作,而在另一个屏幕上不工作?更重要的是,为什么alpha有效,而颜色无效

显然是另一个屏幕中的着色器将字体绘制为白色

我改变了:

  vec4 texColor  = texture2D(u_texture, v_texCoord);
致: 可变的vec4 v_颜色;


这解决了我的问题。

如果我记得ImageTextButton的类中有标签的话。尝试更改标签颜色而不是ImageTextButton颜色。您好!我得到了相同的结果:除了白色,什么都没有,即使Alpha被相应地渲染。这可能是因为其中一个ImageTextButtons添加到了与另一个不同的堆栈和表集合中,这可能会破坏Scene2D通常执行的某些更新逻辑。不知道调用什么更新函数来刷新内容。
  vec4 texColor  = texture2D(u_texture, v_texCoord) * v_color;