【问题标题】:Libgdx Freetype Font Generator Outline acting weirdLibgdx Freetype 字体生成器大纲表现得很奇怪
【发布时间】:2016-04-21 14:48:26
【问题描述】:

我正在使用资产管理器使用对象生成我的字体 FreeTypeFontGeneratorLoader,具体我用的是这个当前参数

FreeTypeFontLoaderParameter parameter = new FreeTypeFontLoaderParameter();
parameter.fontFileName = "fonts/myFont.ttf";
parameter.fontParameters.size = size;
parameter.fontParameters.minFilter = Texture.TextureFilter.Linear;
parameter.fontParameters.magFilter = Texture.TextureFilter.Linear;
if(withStroke) {
    parameter.fontParameters.borderStraight = true;
    parameter.fontParameters.borderColor = Color.BLACK;
    parameter.fontParameters.borderWidth = 1.5f;
}
parameter.fontParameters.color = Assets.fontColor;

(然后我将字体加载到 Assets 类的静态变量中)

如果应用程序第一次运行一切正常, 这是带有轮廓屏幕截图的生成文本:

screenshot

但是在我使用这条线关闭我的应用程序之后

Gdx.app.exit();

然后再次打开我的应用程序,大纲现在开始表现得很奇怪 这是生成的奇怪字体的截图:

screenshot

我已经在尝试在 Gdx 中处理 ApplicationListener 事件时处理我的资产管理器,但有时我的字体仍然表现得很奇怪。

如果我在所有任务 android 中清除我的处理运行,则字体再次正常。

您能告诉我为什么会发生这种情况的可能解决方案吗?您有什么建议吗? 谢谢

【问题讨论】:

  • 这看起来像是一个着色器问题,并且可能与丢失此着色器的上下文有关。因此,正如 TomGrill Games 建议的那样,这可能是一个静态变量问题。

标签: android libgdx freetype


【解决方案1】:

即使应用丢失了上下文,Android 有时也会保留静态(最终)变量。

使用静态变量时:确保在需要时进行处理,然后将它们设置为 null。或者不要对资产使用静态。

【讨论】:

    【解决方案2】:

    由于这个问题发生是因为我的应用程序没有完全关闭,因为这条线:

    Gdx.app.exit();
    

    只是这样做:

    安排退出应用程序。在 android 上,这将导致在未来某个时间调用 pause() 和 dispose(),它不会立即完成您的应用程序"

    这就是为什么我改变了使用这一行关闭我的应用程序的方式:

    System.exit(0);
    

    然后当用户再次打开我的应用程序时,我的应用程序正在加载并生成新字体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 2012-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多