隐藏并显示屏幕后,libGDX中的BitmapFont变为正方形

时间:2018-10-21 08:22:10

标签: android libgdx

我在libGDX上编写的android应用有很多文本。我使用FreeTypeFontGenerator创建字体:

public static BitmapFont setupHandWritingFont() {
    FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/handwriting.ttf"));
    FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
    parameter.size = 36;
    parameter.genMipMaps = true;
    parameter.magFilter = Texture.TextureFilter.Linear;
    parameter.color = Color.BLACK;
    parameter.characters = "абвгдежзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyzАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789][_!$%#@|\\/?-+=()*&.;:,{}\"´`'<>";
    BitmapFont font = generator.generateFont(parameter);
    generator.dispose();
    return font;
}

在执行一些操作之后,这些操作会将屏幕隐藏一段时间(例如显示广告或隐藏应用程序),文本将转换为正方形。它经常发生,但并非每次都发生。

文本看起来像这样: 文字显示错误 enter image description here

代替此: 正确显示文字

enter image description here

有人以前遇到过这个问题吗?我该怎么办?

1 个答案:

答案 0 :(得分:0)

我在批次中添加预乘alpha混合时遇到了这个问题。您可能因为在某处使用了淡入淡出操作(可能选择了框?)而遇到了这个问题。

尝试在绘制字体之前添加跟随线: batch.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);