为ImageTextButton设置fontColor可以在一个屏幕上工作,但不能在另一个屏幕上工作 - LIBGDX Scene2D

时间:2015-05-10 11:42:05

标签: java libgdx shader fragment-shader

我有两个ImageText按钮,这就是我在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工作,但颜色不?

1 个答案:

答案 0 :(得分:0)

显然,这是另一个屏幕中的着色器,用白色绘制字体。

我改变了:

Dim db As Database
Dim rs As Recordset
Dim rsFiltered As Recordset
Dim strQuery As String

strQuery = "SELECT Estimate.JobNum, Magnet.Sequence, Magnet.StartDate, Magnet.EndDate, Magnet.WeekendWork FROM Estimate RIGHT JOIN Magnet ON Estimate.ID = Magnet.[EstimateID];"
Set db = CurrentDb
Set rs = db.OpenRecordset(strQuery)
rs.Filter = "[JobNum]=" & Me!JobID.Value
Set rsFiltered = rs.OpenRecordset

到:   变化vec4 v_color;   ...

  vec4 texColor  = texture2D(u_texture, v_texCoord);

这解决了我的问题。