2013-10-03 75 views
1

我已經提到了這個鏈接:Using custom fonts in Cocos2d導入字體

與此鏈接:http://captainjor.wordpress.com/2013/04/03/cocos2d-x-custom-ttf-font/

第一個鏈接的作品,但我只能指定基礎上的字體(名稱的系列名稱字體窗口的頂部)。如果我想要粗體,或者一些瘋狂的屁股樣式,我不能明確指定,因爲我打開了其他樣式字體,如BoldItalic或Italic,它仍會返回我的姓氏。

第二個鏈接根本不起作用。

我在Cocos2dx使用的代碼工作:

CCLabelTTF *energyLabel = CCLabelTTF::create("ABCDEFGHIJKL", "Roboto", 60.0f); 

這一個不:

CCLabelTTF *energyLabel = CCLabelTTF::create("ABCDEFGHIJKL", "Roboto Black Italic", 60.0f); 

請注意,我已經翻倍我Info.plist文件檢查導入所有必需的字體。 任何人有更多的解決方案? = /我很難過。導入字體是這種PITA。

編輯:我再次在這個問題上,但在另一種方法偶然。只是想我會在這裏發佈一些關於我如何爲Android和iOS進行字體導入的重要指針。請注意,這最適合支持使用一行代碼導入字體。

  1. 首先,我把我所有的字體文件在資源文件夾中(而不是在所有子文件夾,只需在根!)
  2. 特別適用於iOS,你需要在你的plist宣佈他們要導入的字體文件。怎麼樣?就像這樣:

font declaration list in iOS

- >是的,我們可以看到,我莫名其妙地列入了「字體/」子文件夾目錄,即使字體是在資源的根文件夾。這是這裏最奇怪的部分,這應該只是棘手的事情。我嘗試刪除「字體/」子文件夾目錄參考,當我嘗試使用字體在我的應用程序中顯示文本/標籤時,它不起作用

這是適用於iOS和Android的行:

CCLabelTTF* levelLabel = CCLabelTTF::create("TextDisplayed", Roboto-BlackItalic.ttf, 12); 

這行代碼很大程度上依賴於這個事實:字體的PostScript名稱需要與文件名完全相同。

+1

請注意,這是過時的最新版本的cocos2d-x。 – ftvs

回答

6

你會嘗試使用

"Roboto-BlackItalic" 

的字體名稱?我剛剛檢查了一些我的代碼庫,我使用的是字體文件名(沒有擴展名),而不是正確的字體名稱,它工作得很好。

編輯:根據Joel Tay的評論,這是Postscript字體名稱正確的使用。通過選擇預覽菜單中的顯示字體信息,您可以在字體書中找到它,如附圖所示。

enter image description here

+0

令人驚訝的作品..我可以知道你是如何得到這個名字?字體文件中是否有某個屬性,我沒有看到?我點擊了.ttf文件上的「Get Info」,我得到的全名是Roboto Black Italic –

+0

,它只是文件名......它就像外部字體那樣工作。順便說一句,不要忘記接受答案! – sergio

+1

好吧,我知道了,原來導入沒問題。您需要使用FontBook才能獲得PostScript名稱。由於我正在爲iOS和Android開發,爲了保持兼容性和混亂的名稱方案,我將字體命名爲PostScript名稱。感謝指針! –

0

你可以在這裏查看我的答案。 -

UIFont custom font not displaying on device

要顯示你的應用程序可見的所有 '真實' 的字體名稱。

+0

通過不斷地檢查數組,實際保持檢查真正的字體名稱是一件麻煩事。但它並沒有錯。我設法通過使用FontBook應用程序來「繞過」這一點:)只需按特定字體樣式的GetInfo並顯示PostScript名稱供我們使用:) –