在 libgdx 中使用不同大小的相同字体

2022-09-04 00:37:32

我正在为我的文本使用位图字体,LabelStyles和Label。

我想调整一些标签的大小,所以我使用这个:

fontType.scale(-.6f);

LabelStyle style = new LabelStyle(fontType, Color.WHITE);

titleLabel = new Label("Points", style);
titleLabel.setColor(Color.RED);
titleLabel.x = 260; 
titleLabel.y = 310;

但是当我想调整另一个标签的大小时,所有包含该字体的标签都会调整大小(我创建了一个新的LabelStyle)。所以我调整标签而不是字体的大小,但这并不能解决问题,因为它不会调整标签的大小,有什么想法吗?


答案 1

如果要独立缩放每个标签(或标签组),则必须为每个标签(或标签组)创建单独的位图字体和标签样式。

通过检查libgdx源代码,Label使用LabelStyle对BitmapFont的引用,并将其传递给内部使用的BitmapFontCache;在任何时候都没有制作深度副本,因此它们都使用与您创建LabelStyle相同的位图字体。


答案 2

我正在使用libgdx 0.9.8(因为这是一个老问题),当我创建一个这样的标签时:

lblA = new Label("A", skinA);

我可以通过以下方式调整该标签的字体大小:

lblA.setFontScale(3);

这不会影响我以相同方式创建的其他标签。我已经将一些标签设置为字体比例(2),这些都可以(不受(3)的影响)。但是,我发现我的品牌造型并不像“独立”那样。他们需要分配自己的 LabelStyle,否则你会得到你所陈述的行为。


推荐