2014-02-12 51 views
2

對不起,我有點新libgdx(真的喜歡它爲止!),所以可能會有點問題,首發BitmapFont獲取字符串的邊界?

我實現我的RPG遊戲的對話框類。基本上,我會讓人們在人物交談時就像在最終幻想遊戲中看到的那樣逐個角色。通過使用BitmapFontCache類,我可以很好地使用單詞換行。我的下一步是實現「分頁」。 (即將一個字符串傳遞給對話類來顯示,並確定字符串的哪些部分可以適合每個對話頁)。我在這方面遇到了一些麻煩,而沒有采取計算我自己的文字換行的方式。

是否有一個函數,我可以通過我的對話框(比如矩形)的約束並找回適合該約束的字符串部分? (考慮到文字換行+結束語等)。我可以通過字符逐個循環,並使用getWrappedBounds(然後停下來,一旦它超過了我的約束高度),但我覺得我仍然需要在獲取字符串部分時考慮換行。

任何想法?

回答

1

我已經得到了兩種答案你 -

首先,我認爲這個函數,你在找什麼:addWrappedText(java.lang.CharSequence中STR,浮法X,浮法Y,浮動wrapWidth)( javadoc)。

其次,您可能需要考慮使用內置的GUI組件,而不是構建自己的GUI組件。我建議你看看scene2d ui,這是一個libgdx附帶的庫,可以讓你快速地組合靈活的GUI。這將需要一些工作來設置,但是稍後會爲您提供很多選項,因爲您可以通過這種方式獲得諸如皮膚和九個補丁之類的內容,所以我強烈建議您仔細閱讀它。

+0

嗨,John,感謝您的回覆。你的意思是逐字添加字符,然後檢查界限何時超過?我是否還需要考慮自己的包裝? (說當它在一個詞的中間並且超出界限時,我希望那個詞包裝到下一頁)。 – Arbel