2016-11-23 8 views
0

enter image description hereBitmapFontCacheとBitmapFontが奇妙な動作をしますか?

ご覧のとおり、数字は正しく表示されません。彼らはまるで173と15.4のように見えるはずですが、そうではありません。なぜそれが起こっているのですか?私は本当に分かりません。より大きなフォントでのみ起こり、小さなフォントでは起こりません。

また、このバグは、より高い解像度のスマートフォンにのみ表示されます。私は、デスクトップアプリケーションとして、または低解像度(480×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