2013-04-30 74 views
0

我用Hiero製作了一個位圖字體,名爲default.fntdefault.png。我可以在LibGDX中使用這些字體作爲BitmapFont,並使用font.draw()以毫無問題的字體繪製文本。但是我不能將該字體用作蒙皮中的默認字體。我使用了here中的uiskin.json文件(以及其他皮膚,但是在製作自己的字體之前我刪除了Droid Sans文件),因爲我不知道如何製作自己的字體。根據我在互聯網上閱讀的內容,正確設置了.json文件:它具有行com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: default.fnt } },這應使default.fnt成爲使用外觀的小部件的默認字體。然而,當我運行該程序,我看到:皮膚中的BitmapFont不能正確繪製標籤

Label in window that should show text shows only part of an A, buttons that should have labels empty

應該有上面的扣子一個標籤,按鈕應該有文字。

如果我這樣做:startGameButton.getStyle().font = font;,其中startGameButton是其中一個按鈕,並font就是這樣產生的BitmapFontfont = new BitmapFont(Gdx.files.internal("uiskin/default.fnt"), Gdx.files.internal("uiskin/default.png"), false);,按鈕顯示文本正確。我不想這樣做,因爲它感覺太像黑客。

我正在關注this教程,但是我後來在修改代碼時不得不查看一些東西,因爲LibGDX自寫入以來已經發生了變化。

MenuScreen.java(哪裏有問題的畫面)

AbstractScreen.java

也請告訴我,如果有更好的方法,使菜單UI,或者如果您需要其他文件。上面鏈接了uiskin.json

謝謝。

+1

你所做的一切看起來都正確。我以前只添加了字體,並沒有替換默認的,但它應該可以正常工作。你介意發佈關於你的libGDX版本和你的字體文件/圖像副本的信息嗎? – Jyro117 2013-05-02 16:40:47

回答

0

我修好了。 Droid Sans位圖圖像存在於兩個地方,它也是uiskin.png的一部分。我不知道如何,但它可能從該文件讀取字體的字母而不是default.png。所以,最後我只是改名爲字體的.fnt.png(和file.fnt參數),並做了皮膚裏面的.json搜索替換,而這一切現在工作正常。我不知道究竟是什麼引起的,但也許default-font是一個保留字或什麼的。

無論如何,它現在有效。感謝Jyro117讓我覺得也許我不應該替換默認的但添加我自己的字體。