如果我有一個bitmapfont,如;如何獲得bitmapfont的自然字體大小?
fonttexture = new Texture(Gdx.files.internal("data/fonttest.png"), true);
font= new BitmapFont(Gdx.files.internal("data/fonttest.fnt"),
new TextureRegion(fonttexture), true);
是否有可能檢索或推斷在關聯的png紋理文件上使用的自然字體大小? * .fnt文件本身在第一行指定了它;
info face="Calibri Light" size=32 bold=0 italic=0 charset=""
它是我之後的代碼。 我無法在BitmapFonts類中看到直接獲取它的方法,但有可能獲得各種其他與高度相關的屬性。
我試圖從這些重新創建大小,但沒有太多的運氣。
float baseToAssent = font.getCapHeight()+font.getAscent();
float baseToDecent = -font.getDescent();Decent);
float fontHeight = baseToAssent+baseToDecent; //too small, like 11 not 32
不是一個fonttographer? fontophile?...嗯...平面設計師,我可能把這些作品拼湊在一起,或者只是缺少一個。
無論哪種情況,找出fonttest.png中使用的字體大小的任何方法都會有幫助。
感謝
USECASE;
我手動將該紋理與距離場着色器一起使用。瞭解紋理自然字體大小對於準確地縮放文本和lineheight以適應任何請求的字體大小是有用的,而無需調整圖像大小,從而降低質量。
確實。我最初也嘗試過類似的結果。由於我會重複使用這些代碼,所以我想盡可能準確,所以我可能不得不採取哈希方法。 – darkflame
挖一點點,在BitmapFont中找到'getLineHeight()',它返回「行高,這是從一行文本到下一行的距離」。 32px字體的結果是32.而在16px中,我得到了16個。 – Squiddie
是的,這似乎工作。儘管如此,儘可能小心使用它(我也可以)調整lineheight。因此,只有在沒有改變的情況下,這些值才能正確。我的(hackish)解決方案因此保留了字體的hasmap和它們的原始大小。 – darkflame