首页 > 解决方案 > libGDX中的BitmapFont在隐藏和显示屏幕后变成正方形

问题描述

我在 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;
}

在某些操作之后,将屏幕隐藏一段时间(例如显示广告或隐藏应用程序)文本会变成正方形。它经常发生,但不是每次都发生。

文本如下所示: 文本显示错误 在此处输入图像描述

取而代之的是:正确显示文本

在此处输入图像描述

以前有人遇到过这个问题吗?我可以尝试做什么?

标签: androidlibgdx

解决方案


当我将预乘 alpha 混合添加到批处理时,我遇到了这个问题。您可能会因为在某处使用淡入淡出操作(可能是选择框?)而出现这种情况。

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


推荐阅读