【问题标题】:Libgdx How Do I display Text?Libgdx 如何显示文本?
【发布时间】:2016-12-03 07:15:13
【问题描述】:

好的,我一直在寻找这个,但我似乎永远无法为我的问题找到一个好的解决方案。我知道 libgdx 中的 TextArea 类用于用户输入。人们使用它,以便用户可以输入多行字符串。我需要类似 TextArea 的东西来做相反的事情。我想在特定区域向用户显示文本(就像文本区域一样),但我希望它在我的游戏中的某种窗口中(有点像表格或对话框,只是不提示用户输入)。谁能帮我这个?或者这是我必须从头开始制作的东西?

【问题讨论】:

  • 在您的大量搜索中,我想您忘记查看 LibGDX 文档了。 :) github.com/libgdx/libgdx/wiki/Scene2d.ui#label github.com/libgdx/libgdx/wiki/Bitmap-fonts
  • 标签不符合我的要求
  • 我也知道位图字体。我很喜欢使用位图字体。我只需要一个容器来存放我的文本。标签很丑陋,当我需要它来打印新行时,它会将先前的文本向上移动。我想要一个容器,它会在必要时在前一行下打印一个新行。它很像 TextArea,但它是用于输出而不是输入
  • 将标签包裹在表格或容器中,并将其偏向其单元格(或容器)的顶部。不知道您所说的丑陋标签是什么意思。
  • 但我希望它也是一种包含文本的窗口或框。我所说的丑陋是因为文本只是在我的游戏中。我不想只在空白屏幕上显示文本。这很简单。我需要的是类似于 TextArea 的东西,用于输出而不是输入

标签: java string text libgdx


【解决方案1】:

使用 gdxVersion = '1.4.1'(在 Android Studio 中使用 gradle 构建)代码成功绘制文本:

BitmapFont font = new BitmapFont(); //or use alex answer to use custom font

public void render( float dt )
  {
    batch.setProjectionMatrix(camera.combined); //or your matrix to draw GAME WORLD, not UI

    batch.begin();
    //draw background, objects, etc.
    for( View view: views )
    {
      view.draw(batch, dt);
    }

    font.draw(batch, "Hello World!", 10, 10);
    batch.end();
  }

感谢@Deepscorn

您可以阅读本教程了解更多信息:

  1. Libgdx tutorial for simply display the words Hello World on screen.
  2. How can I draw text using Libgdx/Java?
  3. libGDX - Add scores & display it at top left corner of the screen?

【讨论】:

  • 不完全。我喜欢文本区域的一点是我可以给它一种图像属性,这样我就可以在屏幕上绘制一个带有一些文本的图像。我需要这样做但没有它以便它接受输入。相反,它只是向用户输出文本
【解决方案2】:

您可以使用Label 类并在LabelStyle 中设置背景可绘制对象:

Label.LabelStyle style = new LabelStyle();
style.background = ...; // Set the drawable you want to use

Label label = new Label("Text here", style);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    • 2023-03-25
    • 2017-03-17
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多