2016-11-14 48 views
1

我的LibGDX遊戲中的字體有一個奇怪的問題。某些尺寸的某些字母(我使用不同尺寸的相同字體,如12px,18px,22px)不會顯示或顯示爲中斷。Libgdx一些字體不會出現

我爲創建位圖字體代碼:

private BitmapFont createFont(String font, int size) { 
// load the font 
FileHandle fontFile = Gdx.files.internal(font); 

FreeTypeFontGenerator.setMaxTextureSize(FreeTypeFontGenerator.NO_MAXIMUM); 

FreeTypeFontGenerator generator = new FreeTypeFontGenerator(fontFile); 
FreeTypeFontParameter parameter = new FreeTypeFontParameter(); 
parameter.size = size; 
parameter.minFilter = TextureFilter.Nearest; 
parameter.magFilter = TextureFilter.Nearest; 
BitmapFont bitmapFont = generator.generateFont(parameter); 
bitmapFont.setUseIntegerPositions(false); 

generator.dispose(); 

return bitmapFont; 
} 

這裏有一個問題的一些截圖。

screen1

screen1

screen3

正如你可以看到我已經試着用不同的字體(如庫珀黑STD,魔方粗體和更多)。
不同字母在具有不同字體的不同手機上消失。 任何想法?

+1

使用NO_MAXIMUM非常危險 - 如果紋理尺寸超過GPU的最大值,您的字體將無法正常工作。 2048x2048是安全的。 – Tenfour04

回答

0

我不使用FreeTypeFontGenerator,但我有一個類似的問題,其中的字母不會出現在我的遊戲中。如果您使用的是Hiero,請將示例文本更改爲NEHE,或者只需鍵入您需要的字符。轉到字形緩存,單擊重置緩存。將頁面寬度和高度設置爲2048並再次保存。我經常用赫羅來解決這個問題。對我而言,這是一個碰撞或錯過的問題,有時我必須做兩到三次這些步驟才能工作。嘗試去字體位置並檢查.hiero文件旁邊的png文件,如果沒有出現在遊戲中的字母沒有出現在這些文件中,那麼肯定是Hiero不能很好地生成文件。我希望它有幫助。