【问题标题】:Using the same font with different sizes in libgdx在 libgdx 中使用不同大小的相同字体
【发布时间】:2012-03-12 18:55:12
【问题描述】:

我正在为我的文本使用 BitmapFonts、LabelStyles 和 Labels。

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

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)。所以我调整了标签而不是字体的大小,但这并没有解决问题,因为它没有调整标签的大小,知道吗?

【问题讨论】:

    标签: java fonts libgdx


    【解决方案1】:

    如果您想独立缩放每个标签(或标签组),则必须为每个标签(或标签组)创建单独的 BitmapFonts 和 LabelStyle。

    通过检查 libgdx 源代码,Label 使用 LabelStyle 中对 BitmapFont 的引用并将其传递给内部使用的 BitmapFontCache;任何时候都不会进行深拷贝,因此它们都使用与您创建 LabelStyle 相同的 BitmapFont。

    【讨论】:

    • 我认为这将是最好的选择 :/ 虽然它会花费大量时间来创建位图字体 u.u 谢谢 :)
    • 很遗憾 label.setScale() 没用。我也认为这是最好的解决方案,虽然它很丑。感谢分享。
    【解决方案2】:

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

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

    我可以调整该标签的字体大小:

    lblA.setFontScale(3);
    

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

    【讨论】:

    • 从 libGDX 1.5.6(如果不是更早版本)开始,使用 setFontScale(float) 会单独影响标签,即使它们共享相同的 LabelStyle
    • @JamesSkemp 有没有类似全局设置的东西来扩大一切?手机上的所有东西都画得很小(像素密度更高),但这也意味着我可以将字体画大 2 倍甚至 3 倍并节省纹理空间。
    • 好问题@MennoGouw - 恐怕我不确定:(如果是我,我想我会创建某种全局函数或LabelStyle
    猜你喜欢
    • 1970-01-01
    • 2017-05-31
    • 2017-04-14
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多