我有两个ImagetextButtons,这就是我在Mainmenu屏幕和游戏屏幕中设置它们的方式:
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屏幕中白色即使正确渲染了alpha。
我已经搜索了所有 level_no_button 我的代码内的颜色设置,并且没有线路将颜色设置为白色。为什么颜色设置在一个屏幕上工作,而在另一个屏幕上不起作用?更重要的是,为什么Alpha可以工作,但颜色不工作?
显然是另一个屏幕中的着色器绘制白色字体。
我更改了:
vec4 texColor = texture2D(u_texture, v_texCoord);
to: 变化的vec4 v_color; ...
vec4 texColor = texture2D(u_texture, v_texCoord) * v_color;
这解决了我的问题。