好吧,所以我有一个启用了标记的位图字体。问题是,我需要为整个文本字符串设置全局alpha值,而不为每个颜色代码设置单独的alpha值。
例如,我有......
" [#0000ff]这是蓝色,[#990000]这是红色"
我希望字体文字通过设置alpha值淡入背景。有没有办法在不手动解析颜色代码并将alpha值粘贴到括号中的情况下执行此操作?
我还尝试使用Colors.put(..)
添加自定义颜色,但这非常笨重,因为我必须将alpha值设置为我使用的每种颜色,每行文字都是我在画画。
答案 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,但它很容易修复它。如果你遇到这个问题,请告诉我。