【问题标题】:LibGDX BitmapFont Markup Alpha ValueLibGDX 位图字体标记 Alpha 值
【发布时间】:2015-11-15 03:50:05
【问题描述】:

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

例如,我有...

“[#0000ff]这是蓝色的,[#990000]这是红色的”

我希望通过设置 alpha 值使字体文本淡入背景。有什么方法可以做到这一点,而无需手动解析颜色代码并将 alpha 值粘贴到括号中?

我还尝试使用 Colors.put(..) 添加自定义颜色,但这变得非常笨拙,因为我必须将 alpha 值设置为我正在使用的每种颜色,以及我正在绘制的每一行文本。

【问题讨论】:

    标签: libgdx alpha markup bitmap-fonts


    【解决方案1】:

    您需要使用 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,但很容易修复它。如果你遇到了这个问题,请告诉我。

    【讨论】:

    • 好吧,这似乎工作得很好!谢谢! [注意:我使用的是 GDX 1.7,所以它只是 cache.addText]
    猜你喜欢
    • 1970-01-01
    • 2015-07-06
    • 2019-01-22
    • 2016-02-11
    • 2015-07-25
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多