LibGDX BitmapFont标记Alpha值

时间:2015-11-15 03:50:05

标签: libgdx alpha markup bitmap-fonts

好吧,所以我有一个启用了标记的位图字体。问题是,我需要为整个文本字符串设置全局alpha值,而不为每个颜色代码设置单独的alpha值。

例如,我有......

" [#0000ff]这是蓝色,[#990000]这是红色"

我希望字体文字通过设置alpha值淡入背景。有没有办法在不手动解析颜色代码并将alpha值粘贴到括号中的情况下执行此操作?

我还尝试使用Colors.put(..)添加自定义颜色,但这非常笨重,因为我必须将alpha值设置为我使用的每种颜色,每行文字都是我在画画。

1 个答案:

答案 0 :(得分:2)

您需要使用BitmapFontCache类。

例如,假设您的代码目前看起来像这样......

    font.drawWrapped(batch, text, x, y, wrapWidth, alignment);

将其替换为以下内容,您可以按照所需方式控制alpha ...

    BitmapFontCache cache = font.getCache();
    cache.clear();
    TextBounds bounds = cache.addMultiLineText(text, x, y, wrapWidth, alignment);

    // This is the useful bit!
    cache.setAlphas(alphaTransparency); 

    cache.draw(batch);

注意 - 如果你正在使用距离字段字体,那么大多数人使用的着色器并不支持alpha,但它很容易修复它。如果你遇到这个问题,请告诉我。