java - libgdx 中的多色文本

标签 java libgdx

我发现在夜间构建的 LibGDX 中有一个新组件 - TextArea,它是 scene2d.ui 包的一部分。很高兴有这样的组件,非常易于使用,但我缺少的是对多色文本的一些支持。

我想用不同的颜色在文本中突出显示一些关键字,但我不知道如何使用当前的 api 来做到这一点。 BitmapFontCache 类中有一种方法:

public void setColors (Color tint, int start, int end)

此方法的 Javadoc 说明如下:

Sets the color of the specified characters. This may only be called after setText(CharSequence, float, float) and is reset every time setText is called.

但我不知道如何通过 TextArea 对象使用它,或者是否可以那样做。有人试图弄清楚吗?我们将不胜感激。

最佳答案

Libgdx 提供颜色标记,必须首先在 BitmapFont 上启用

font.getData().markupEnabled = true;

使用该字体呈现的文本将查找 color markup ,其中颜色用括号括起来。每种使用过的颜色都被压入堆栈。

  • 命名颜色(区分大小写):[RED]red [ORANGE]orange
  • 具有可选 alpha 的十六进制颜色:[#FF0000]red [#FF000033]transparent
  • 一组空括号从堆栈中弹出一种颜色:[BLUE]Blue text[RED]Red text[]Blue text
  • 双括号 [[ 代表一个转义的括号字符,但是当后面跟一个右括号时它不会按预期工作。

命名颜色在类 com.badlogic.gdx.graphics.Colors 中定义,并且可以使用 Colors.put("NAME", color); 添加。

关于java - libgdx 中的多色文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21306457/

相关文章:

java - instanceof 失败时的适当异常

java - 基于瓦片的碰撞检测,物体穿过瓦片掉落

java - Libgdx chainshape 位置

java - 切换屏幕时 LibGDX NullPointerException

java - Libgdx - 加载字体会减慢游戏速度

java - Android - 重新定义从支持库中删除的类 (AsyncTaskCompat)

java - 如何将改造的回调从 Activity 移动到类

java - 在命令行上编译 netbeans 程序

java - 静态方法以及如何使用它们

java - 有没有正确的方法来缩放舞台上的 Actor ?(Libgdx)