2014-10-30 39 views
0

我在過去做了一些代碼來檢查文本以找到將改變文本顏色的顏色代碼。例如:LibGDX WrappedText,但通過使用文本內的顏色(java)

繪製這樣的:當繪製 Hello my name&b is john 會給這個結果:Hello my name is john,但「是約翰」將是藍色,因爲我用的& b色碼。我基本上模仿ansi,但對於java。

現在我想包裝文本完全像LibGDX的BitMapFont.drawWrapped(...)但仍使用顏色代碼。有人知道怎麼做嗎?我很可能最終能夠弄清楚,但我只想知道是否有比我更好的方法。

回答

1

有顏色標記的支持:Color Markup Language

的BitmapFontCache類支持的串色的通過一個簡單的標記語言文字。

默認情況下禁用標記。使用方法BitmapFont.setMarkupEnabled()將其打開/關閉。

的標記語法是非常簡單的,但仍然多才多藝:

  • [名] name設置顏色。有幾種預定義的顏色,請參閱Colors.reset()方法以獲得詳盡的列表。用戶可以通過Colors類的方法來定義自己的顏色。
  • [#xxxxxxxx]設置由RRGGBBAA格式的十六進制值xxxxxxxx指定的顏色,其中AA是可選的,默認爲0xFF。
  • []將顏色設置爲以前的顏色(可選結束標籤的種類)
  • [[將左括號移出。

請注意,顏色名稱區分大小寫,不能爲空,不能以#和[,不能包含]開頭。此外,任何[顏色名稱]中的[無法逃脫。

有關示例代碼,請參閱測試類BitmapFontTest

+0

哇謝謝,我沒有改變位圖字體的顏色,而是決定用libgdx代碼替換顏色代碼(&r,&b等)。萬分感謝!你也可以改變文字是否粗體? – vedi0boy 2014-10-31 14:45:25

+0

Nevermind並不真的,重要的是,我決定不最終使用它。我正在研究mmo,如果人們在聊天中寫入無效的十六進制代碼,它會使每個人都會崩潰。我想我以前有過很好的事情。不管怎麼說,多謝拉! – vedi0boy 2014-10-31 15:23:21

相關問題