库GDX 。绘制多行文本

Posted

技术标签:

【中文标题】库GDX 。绘制多行文本【英文标题】:LibGDX . draw multiline text 【发布时间】:2014-10-16 00:41:12 【问题描述】:

我正在尝试在 libGDX 中使用 BitmapFont 编写大文本。但它显示在一行上,用户只能看到文本的第一部分。如何使 bitmapFont 自动换行并在屏幕上显示整个文本?

【问题讨论】:

当没有更多可用空间时,您希望它自动跳到下一行吗? 是的。我应该使用 \n 吗? 要么使用 \n 手动换行(font.drawMultiline),要么使用带有 wrapwidth 的 font.drawWrapped 自动完成。 @noone 很高兴了解bitmapFont.drawWrapped(),这个方法非常有用。 【参考方案1】:

要么使用\n 手动换行,要么通过font.drawMultiLine(...) 渲染字体。

或者使用 font.drawWrapped(...) 和一个换行宽度让 libgdx 自动换行(手动添加的\n 仍然支持)。

更新:在 libGDX 1.6 中,draw methods were enhanced 不再需要 drawMultiLine 和 drawWrapped,因此已将其删除。 Draw 方法可以处理多行,并引入了一个新的boolean wrap 参数。

【讨论】:

似乎在最新的 libgdx 版本中不再有 font.drawMultiLine(...)/font.drawWrapped(...) 方法。现在怎么写多行文字? 现在你可以简单地使用 font.draw(...) 和 \n 来换行【参考方案2】:

如果您查看文档,您会发现您可以使用相同的 font.draw 函数,但现在您要传递目标位置宽度以及是否换行。

draw(Batch batch, java.lang.CharSequence str, float x, float y, float targetWidth, int halign, boolean wrap)

【讨论】:

以上是关于库GDX 。绘制多行文本的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序 - canvas实现多行文本 ,实现文本断行

微信小程序 - canvas实现多行文本 ,实现文本断行

微信小程序 canvas绘制多行文本(文本换行)

多行的动画文字下划线(从左到右绘制动画)

QTableWidget - 将多行文本放在一行中

winapi中多行编辑中的意外行为