绘制多行BitmapFont垂直居中

时间:2019-07-15 19:21:24

标签: libgdx text-rendering

我希望将一些长包装的文本居中放置在矩形(或其他任何东西)上,如下图所示(我不需要隐藏多余的文本,但这会是一个很大的优点,我会非常感谢):

enter image description here

我已经能够通过单行文本实现垂直居中,如下所示:

BitmapFont font = new BitmapFont();
String text = "Hello";
Rectangle bounds = new Rectangle(0, 0, 100, 100);

void render(SpriteBatch spriteBatch) {
    font.draw(
        spriteBatch,
        text,
        bounds.x,
        bounds.y + bounds.height / 2f + font.getLineHeight());
}

我知道有一个BitmapFont.draw()方法变体,可以让您指定水平对齐方式,文本的目标宽度和换行标志,但是我似乎找不到垂直的方法对齐多行文字。

过去,BitmapFont.getBounds()和一些数学运算是可以实现的,但是LibGDX 1.9.9中没有这种方法。

1 个答案:

答案 0 :(得分:0)

使用GlyphLayout类,我们可以获取已包装文本的高度,我制作了一个辅助方法,将文本置于Rectangle的中央,从而提高了主{{1 }}我们的应用/游戏的方法:

render()