Cocos2d-x教程(28)-ttf 字型庫的使用,cocos2d-x-ttf
歡迎加入 Cocos2d-x 交流群: 193411763
轉載請註明原文出處:http://blog.csdn.net/u012945598/article/details/37650843
通常為了使遊戲介面更為美觀,我們會選用某種字型來達到效果。今天要介紹的便是如何在iOS中引入ttf字型庫檔案(Cocos2d-x 原理相同)
在iOS中使用字型庫的步驟如下(Android無需下述處理,可直接使用):
1.擷取ttf字型庫檔案(網上搜尋一搜一堆)
2.在Mac上安裝字型庫檔案(主要用於擷取該字型在系統中存放的英文名字,第四步也可達到同樣效果)
3.找到項目中Info.plist檔案並對其進行相應設定
4.在控制台列印字型庫中所有字型名字,找到所添加字型庫的英文名(此步驟非必要操作)
5.在代碼中對Label控制項進行使用
詳細操作過程:
1.擷取.ttf檔案,該檔案為筆者剛剛下載的一個ttf
2.雙擊檔案,點擊安裝字型。安裝成功後點擊螢幕右上方的搜尋,輸入"字型冊"並開啟,找到字型對應的英文名字留著備用。
3. 找到你的工程資源檔夾下面的 fonts檔案夾,Resources/fonts(此處筆者所用引擎為2.2.2版本,一般字型檔會放在此處儲存,放在其它檔案夾亦可,但要注意路徑問題),然後將字型檔拷貝進去,之後找到Info.plist檔案,開啟並對其進行修改(Info.plist檔案在2.2.1之前版本直接可以在Xcode中搜尋到,2.2.2版本位於項目中的proj.ios檔案夾中)。
注意 Fonts provided by application 是需要手動添加的項,原本Info.plist中並沒有。注意觀察筆者在裡面添加的item 0 以及item 1兩項,之前將字型庫檔案放在了fonts檔案夾中,所以填寫的時候一定要將上級目錄fonts加上,如item 1對應的寫法,如果按照item 0的寫法資源是載入不進去的,如果選擇將字型庫檔案夾加到了別的路徑下,一定要確保字型庫檔案的路徑已經被加到了Copy Bundle Resources中。
4.完成上述操作後字型庫檔案已經成功的被添加到你的項目中並可以使用了,但是在使用的時候還需要注意一點,字型的名字並非是你的檔案對應的名字,而是在第二部中我們所看到的英文名,這裡我們可以做一個測試,看看在程式中字型的真正名字到底是什麼。開啟AppController.mm檔案(測試代碼為OC語言,所以需要在混編檔案中測試),在入口函數 didFinishLaunchingWithOptions 中加入如下代碼:
NSArray *familyNames = [UIFontfamilyNames];
for(NSString *familyNamein familyNames)
{
NSLog(@"family name is %@", familyName);
NSArray *fontNames = [UIFontfontNamesForFamilyName:familyName];
for(NSString *fontNamein fontNames)
{
NSLog(@"\tfont name is %@", fontName);
}
}
這段代碼會列印出所有的字型名字,然後我們在控制台進行搜尋,看看有沒有我們所添加的字型名。
5.第四步是可以省略的一個步驟,主要用於測試。在項目中支援字型的控制項有兩種(2.x版本引擎),CCLabelTTF以及CocoStudio的Label控制項。使用方法十分簡單,CCLabelTTF的字型在create函數中即可設定,而Label需要使用setFontName()方法。
CCLabelTTF label =CCLabelTTF::create("標籤名", "SentyMaruko-02-SP", 32);
Label * label=Label::create()
label->setFontName("SentyMaruko-02-SP")
怎在cocos2d中使用自訂ttf格式字型
以Insanibu.ttf字型為例:1. 雙擊開啟工程檔案的info.plist,如果其中沒有UIAppFonts的資料項目,則可以直接添加:UIAppFontsInsanibu.ttf如果其中有UIAppFonts資料項目,則可以追加元素UIAppFontsXXX.ttfInsanibu.ttf//這裡字型帶尾碼的全程應該與字型的檔案名稱完全一致。也可以直接在xcode中以xml方式查看,添加UIAppFonts,屬性為array,然後添加數組元素(item),添加字型名稱:Insanibu.ttf,屬性為string,可以達到同樣的效果。2. 使用CCLabelTTF*testLabel = [CCLabelTTF labelWithString:@"Test font"fontName:@"Insanibu" fontSize:20];//強調:這裡沒有ttf尾碼的檔案名稱應該與字型被安裝到作業系統裡以後系統工具裡頭的字型工具顯示的字型名相一致才可以!字型名和字型檔名不一定是一一對應的,會有一些差別,一定要注意,否則調用不到該字型,會顯示
cocos2d-x教程
【麥可cocos2d-x跨平台課程】
課程內容共分為5個階段:
第一階段主要瞭解、認識遊戲開發,並為遊戲開發做好準備工作;
第二階段則學習如何使用cocos2d-x引擎進行進行遊戲開發,它包含了cocos2d-x引擎各個方面的基礎知識點;
第三階段則學習遊戲開發中一些常用的技術,包括網路,安全,最佳化,編輯器等運用,以及結合行動裝置的特點和當前的市場環境,將遊戲做得受歡迎;
第四階段則主要針對遊戲引擎本身進行分析,以滿足遊戲開發中的各種擴充需要,甚至是開發和完善引擎本身;
第五階段就主要結合實際的商業項目,讓大家掌握遊戲開發的全過程,包括策劃,構架,管理等,以便能獨立完成商業及遊戲項目。