【问题标题】:Scale a Bitmapfont in LibGDX在 LibGDX 中缩放位图字体
【发布时间】:2015-07-06 13:47:09
【问题描述】:

如何在 LibGDX 中缩放 Bitmapfont 对象?似乎 setScale 方法不再可用。

【问题讨论】:

    标签: java android libgdx


    【解决方案1】:

    使用bitmapFont.getData().setScale(float x, float y)

    【讨论】:

    • 其中 bitmapFont = new BitmapFont();
    【解决方案2】:

    不建议缩放Bitmap字体,因为放大后看起来像像素化(我认为这很难看)

    建议使用freetype generator 调整字体大小

    如果还想用bitmapFont Tenfour04 就对了

    【讨论】:

    • 我可以使用足够大的字体,这样我就可以用 getData().setScale(...,...) 调整它的大小而不会看起来很丑?
    • 当然,只需使用更大的字体并确保在打开 mip-mapping 的情况下加载其纹理并使用过滤器(MipMapLinearLinear、Linear)。
    • 我正在使用 Freetype 生成器,但它似乎在小分辨率屏幕上运行时不会自动缩小。如何根据屏幕分辨率缩小 Freetype 字体?
    • 我正在使用 freetype 生成器,但是当它创建一个全新的纹理时,我会调用很多刷新,因为它会不断在我的一个大 TextureAtlas 与我的所有图像和字体 Texture 之间切换.有没有办法在运行时将这些组合成一个 TextureAtlas?
    【解决方案3】:

    正如Fish提到的,推荐使用freetype generator如下:

    FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/timesBold.ttf"));
    FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
    

    然后在参数中更改字体大小并初始化BitmapFont:

    fontParameter.size = 18;
    BitmapFont font = fontGenerator.generateFont(fontParameter);
    

    还需要在项目的 armeabi 文件夹中包含 libgdx-freetype.so。

    【讨论】:

    • 您能否澄清一下如何确定哪些 ttf 字体实际可用以及它们在设备上的位置?这些是gdx字体还是android系统字体?谢谢
    • 您可以在 Windows 操作系统的字体文件夹中找到 .ttf 文件。然后复制您想要的字体系列文件并将其定位在您的 Libgdx 项目的资产文件夹中。
    【解决方案4】:

    您可以在加载字体时将字体大小分配给 FreeTypeFontParameter

     FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("Lobster.ttf"));
        FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
        parameter.size = 50; // font size
         BitmapFont lobster= generator.generateFont(parameter);
        generator.dispose();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-22
      • 2022-06-29
      • 1970-01-01
      • 2016-12-17
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多