2016-11-23 80 views
0

enter image description hereBitmapFontCache和BitmapFont生成的奇怪行爲?

正如你所看到的,數字顯示不正確。他們應該看起來像:173和15.4,但他們沒有。爲什麼會發生?我真的不知道。它只發生在較大的字體上,而不是較小的字體。

此外,該錯誤只出現在分辨率更高的智能手機上。當我將應用程序作爲桌面應用程序或分辨率較低(480 x 800)的手機啓動時,它不會顯示。

我正在用TTF字體隨時生成字體。 我的代碼:

生成:

public static BitmapFont generateFont(int size, String fontPath) { 
    float scale = 1.0f * Gdx.graphics.getWidth()/Game.WIDTH; 

    if(scale < 1) 
     scale = 1; 

    FreeTypeFontGenerator.FreeTypeFontParameter params = new FreeTypeFontGenerator.FreeTypeFontParameter(); 
    generator = new FreeTypeFontGenerator(Gdx.files.internal(fontPath)); 

    params.size = (int) (size * scale); 

    BitmapFont font = generator.generateFont(params); 
    font.getData().setScale((float) (1.0/scale)); 
    font.getRegion().getTexture().setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear); 

    dispose(); 

    return font; 
} 

然後我生成字體:

FONT_115 = FontGenerator.generateFont(115, FONT_TTF_DEFAULT); 

然後我就與這個字體的文本:

layout = new GlyphLayout(font, ""); 
fontCache = new BitmapFontCache(font); 
layout.setText(font, text); 
fontCache.setText(layout, position.x - layout.width/2, position.y); 

所以我的問題: 爲什麼大字體中的文字顯示不正確?

回答

0

下面固定的問題:

FreeTypeFontGenerator.setMaxTextureSize(FreeTypeFontGenerator.NO_MAXIMUM); 

然而,也有一些失敗(見圖)。

enter image description here