为 ImageTextButton 设置 fontColor 在一个屏幕上有效,但在另一个屏幕上无效 - LIBGDX Scene2D
Setting fontColor for ImageTextButton works in one screen but not on another - LIBGDX Scene2D
我有两个 ImageText 按钮,这是我在主菜单屏幕和游戏屏幕中设置它们的方式:
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 导出的相同字体文件。
在我的游戏屏幕中,我看到的文本是橙色,因为它应该被看到但是在我的MainMenu screen 即使 Alpha 渲染正确,它仍然是 White。
我在我的代码中搜索了所有 level_no_button 颜色设置,但没有一行将颜色设置为白色。为什么颜色设置在一个屏幕上有效,但在另一个屏幕上无效?更重要的是,为什么 alpha 起作用但颜色不起作用?
显然是另一个屏幕中的着色器将字体绘制为白色。
我改了:
vec4 texColor = texture2D(u_texture, v_texCoord);
致:
变化 vec4 v_color;
...
vec4 texColor = texture2D(u_texture, v_texCoord) * v_color;
这解决了我的问题。
我有两个 ImageText 按钮,这是我在主菜单屏幕和游戏屏幕中设置它们的方式:
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 导出的相同字体文件。
在我的游戏屏幕中,我看到的文本是橙色,因为它应该被看到但是在我的MainMenu screen 即使 Alpha 渲染正确,它仍然是 White。
我在我的代码中搜索了所有 level_no_button 颜色设置,但没有一行将颜色设置为白色。为什么颜色设置在一个屏幕上有效,但在另一个屏幕上无效?更重要的是,为什么 alpha 起作用但颜色不起作用?
显然是另一个屏幕中的着色器将字体绘制为白色。
我改了:
vec4 texColor = texture2D(u_texture, v_texCoord);
致: 变化 vec4 v_color; ...
vec4 texColor = texture2D(u_texture, v_texCoord) * v_color;
这解决了我的问题。