2015-05-10 26 views
0

我有两个ImageTextbuttons,这是我如何设置他们在我的MainMenu的屏幕和游戏画面:设置FONTCOLOR为ImageTextButton工作在一个屏幕上,但没有其他 - LIBGDX Scene2D

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的屏幕它,即使阿尔法正确渲染仍然文本为

我已经搜索了所有level_no_button我的代码中的颜色设置,并且没有将颜色设置为白色的行。为什么颜色设置在一个屏幕上工作,而不是在另一个屏幕上?更何况,为什么阿尔法工作,但颜色不?

+1

如果我记得ImageTextButton在其类中有标签。尝试更改标签颜色而不是ImageTextButton颜色。 – z3n105

+0

嗨!我得到了同样的结果:即使阿尔法被渲染,也只是白色。这可能是因为其中一个ImageTextButton被添加到另一个不同的堆栈和表中,并且可能会破坏Scene2D通常执行的某些更新逻辑。不知道要调用什么更新函数来刷新内容。 – gogonapel

回答

0

显然它是在其他屏幕上绘制白色字体的着色器。

我改变:

vec4 texColor = texture2D(u_texture, v_texCoord); 

到: 变化vec4 v_color; ...

vec4 texColor = texture2D(u_texture, v_texCoord) * v_color; 

并解决了我的问题。

相关问题