Libgdx,如何在位图字体上设置Alpha?

时间:2018-06-20 14:55:25

标签: android libgdx

今天我想更改LibGdx中位图字体的字母

我发现BitmapFont类具有setColor方法,因此我在下面进行了介绍。注意我不想更改颜色,所以我将这些值设置为相同的

 myBitmapFont.setColor(myColour.r,
                       myColour.g,
                       myColour.b,
                       MY_ALPHA)

我的Alpha是

 MY_ALPHA= 0.1f

但是,阿尔法不适用,有人知道我在这里做错了吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我意识到自己的错误。我忘记了我不是直接绘制GlyphLayout而是使用GlyphLayout实例执行文本绘制(因为internal fun BitmapFont.drawFontInCenterOfContainer(batch: Batch, glyphLayout: GlyphLayout, containerWidth: Float, containerHeight: Float, offsetX: Float = 0f, offsetY: Float = 0f) { this.draw( batch, glyphLayout, offsetX + containerWidth / 2 - glyphLayout.width / 2, offsetY + containerHeight / 2 + glyphLayout.height / 2) } 执行文本测量)

setColor

因此,即使我在BitmapFont实例上调用了setText,它也并不适用,因为我还必须在GlyphLayout上调用 myBitmapFont.setColor(myColour.r, myColour.g, myColour.b, MY_ALPHA) glyphLayout.setText(myBitmapFont, myText)

setText

并查看GlyphLayout的{​​{1}}方法

/** Calls {@link #setText(BitmapFont, CharSequence, int, int, Color, float, int, boolean, String) setText} with the whole
     * string, the font's current color, and no alignment or wrapping. */
    public void setText (BitmapFont font, CharSequence str) {
        setText(font, str, 0, str.length(), font.getColor(), 0, Align.left, false, null);
    }

它应用BitmapFont颜色