我希望将一些长包装的文本居中放置在矩形(或其他任何东西)上,如下图所示(我不需要隐藏多余的文本,但这会是一个很大的优点,我会非常感谢):
我已经能够通过单行文本实现垂直居中,如下所示:
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中没有这种方法。
答案 0 :(得分:0)
使用GlyphLayout类,我们可以获取已包装文本的高度,我制作了一个辅助方法,将文本置于Rectangle
的中央,从而提高了主{{1 }}我们的应用/游戏的方法:
render()