2010-11-19 177 views
20

如何在我的Cocos2d iPhone應用程序中使用自定義TTF字體?在Cocos2d中使用自定義字體

+0

我已經完成了所有這些工作,無法在設備上運行,只能在模擬器上運行!我如何使它在設備上工作? – 2010-12-31 15:17:57

+0

我發佈了一個問題解答,解決了在cocos2d中使用自定義字體時出現的大多數缺陷。如果您在自定義項目中添加自定義字體時遇到問題,請檢查一下。 (http://stackoverflow.com/questions/14508675/how-can-i-add-a-font-to-my-cocos2d-ios-project-and-use-it-with-a-cclabelttf) – RLH 2013-01-25 12:14:28

回答

54

我搜索了一段時間,並決定發佈爲想要實現的人的問題和答案。

該解決方案非常簡單。

  1. 找到你想要的字體並下載它們。 This website有一個巨大的免費字體集合。

  2. 將字體文件添加到您的項目中。 alt text

  3. 使用下面的數組作爲示例,將字體名添加到您的info.plist文件中。

  4. 查找字體的名稱;雙擊字體文件並使用窗口標題中顯示的字體名稱。在這個例子中是 「行動的人」

alt text

要使用的字體名稱你通常會的方式:

CCLabel* myLabel = [CCLabel labelWithString:@"Some Text" fontName:@"Action Man" fontSize:18]; 

添加到您的Info.plist文件:

<key>UIAppFonts</key> 
<array> 
    <string>Action Man Bold.ttf</string> 
    <string>AdineKirnberg-S.ttf</string> 
</array> 
+1

爲什麼使這是一個Cocos2D QA? UIAppFonts在iOS> = 3.2.2的任何舊iOS應用程序中的工作方式相同。 – 2010-11-19 21:14:12

+0

我想補充一點,此方法也適用於.ttc :) – magorich 2016-05-05 21:47:24

18

在Cocos2D中,您可以將字體文件與資源包含在一起,然後在fontName中包含:只需提供文件名。例如:

CCLabelTTF *label = [CCLabelTTF labelWithString:@"whatever" fontName:@"FONTNAME.ttf" fontSize:18]; 

這通常比Hanaan發佈的方法更容易。

您應該使用與文件名完全相同的文件名大寫。

如果您僅在Cocos2D位中使用它,則不需要將字體添加到您的info.plist。

如果像Confused一樣發現字體在模擬器上工作,但不在設備上,它可能是文件名大小寫錯誤。 iPhone區分大小寫,模擬器不是。

+7

這不是在cocos2d 2.0中的情況,CCLabelTTF將只使用UIFont來解析它想要的字體。這需要將TTF添加到Info.plist。 – bshirley 2012-06-09 17:25:24

+0

@bshirley,我也在cocos2d 2.0中面臨同樣的問題,告訴我在plist中添加ttf字體文件名的位置。 – Guru 2012-07-07 15:20:24

+1

@Raj - 答案在上面給出。將TTF作爲資源添加到項目中。將字體文件添加到info.plist中,鍵爲具有字符串值的數組(即「FooBar.ttf」)的UIAppFonts。確保你在代碼中使用了FONT NAME,而不是文件名。選擇並檢查Mac OS中的字體以收集在文件中編碼的實際字體名稱。 (可能是「Foo Bar BOLD」) – bshirley 2012-07-10 18:42:45

0

由於這些答案已過時,我相信我的問題/答案將有助於所有那些。

Importing fonts for cocos2dx iOS

這是iOS和Android平臺上的字體進口,因爲代碼只是一個單一的線!