西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識(shí) → cocos2dx 字體文件、cocos2dx的ttf字體顯示

cocos2dx 字體文件、cocos2dx的ttf字體顯示

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:西西整理時(shí)間:2014/8/18 11:03:54字體大。A-A+

作者:西西點(diǎn)擊:1325次評(píng)論:0次標(biāo)簽: cocos2dx

  • 類型:編程輔助大小:4.6M語言:中文 評(píng)分:10.0
  • 標(biāo)簽:
立即下載

1.一些概念

ttf:true type font 它是用曲線方式描述字體輪廓,因此都可以輸出很高質(zhì)量的字形,即放大縮小看起也很清晰

bitmap font : 點(diǎn)陣字體 位圖字體

atlas:詞典意思是地圖集, 我想它是用來表示多個(gè)圖片拼在一起的感覺,

2.cocostudio中控件中相應(yīng)的字體

Button:要求ttf格式字體,如果需要顯示文字的話

AtlasLabel:要求一張0-9拼在一起的圖片,比如顯示數(shù)字1,則把圖片對應(yīng)部分取出來顯示,數(shù)字本身相當(dāng)于圖片中的一個(gè)索引,不需要額外的映射關(guān)系文件,只要一張圖片,并指明每個(gè)字符的寬高即可

BitmapLabel:需要一個(gè)字符對應(yīng)到圖片位置的表即 fnt文件,fnt文件里面包含了引用到圖片的信息,各種顯示參數(shù)等

3.fnt格式簡述

fnt相當(dāng)于一個(gè)配置文件,比如漢字“象”要用bitmap的方式顯示。

象的unicode編碼是8c61,轉(zhuǎn)換為10進(jìn)制為35937,再通過fnt文件找到id=35937的顯示區(qū)域,最后把fnt對應(yīng)圖片相應(yīng)區(qū)域扣出來顯示

4.CCLabelTTF、CCLabelAtlas和CCLabelBMFont

1. CCLabelTTF
CCLabelTTF::labelWithString(const char *label,          //文字內(nèi)容  
                            const CCSize& dimensions,   //范圍 CCSize(0,0)默認(rèn)大小  
                            CCTextAlignment alignment,  //對齊方式 0左 1中 2右  
                            const char *fontName,       //字體名  
                            float fontSize              //字號(hào))
CCLabelTTF是CCTextureNode的子類,通過系統(tǒng)字體生成label。
CCLabelTTF對象渲染比較慢,每次調(diào)用setString的時(shí)候,一個(gè)新的OpenGL紋理將被創(chuàng)建,這意味著setString和創(chuàng)建一個(gè)新的標(biāo)簽一樣慢,所以當(dāng)需要頻繁更新label的時(shí)候,應(yīng)該選擇另外兩種文字類。
 
由于CCLabelTTF這個(gè)類使用的是系統(tǒng)中的字體,不需要額外往項(xiàng)目文件中添加字體文件。但如果你有自定義的字體也可以加到項(xiàng)目中,如果無法使用,可以查看一下ccConfig.h中的CC_FONT_LABEL_SUPPORT是否enable了。
 
2. CCLabelAtlas
CCLabelAtlas::labelWithString(const char *label,         //標(biāo)簽文字內(nèi)容  
                              const char *charMapFile,   //圖片路徑  
                              unsigned int itemWidth,    //元素的寬度  
                              int unsigned itemHeight,   //高度        
                              unsigned char startCharMap //起始的字符)
引擎模板里面左下角顯示幀率的數(shù)字,就是利用CCLabelAtlas來實(shí)現(xiàn)的。因?yàn)閹室恢痹谧儭?br/>每個(gè)字符的高度和寬度不能設(shè)置錯(cuò)誤,否則顯示的時(shí)候可能就不對了。最后一個(gè)起始的字符用來對應(yīng)字符和圖像的關(guān)系的。
 
3. CCLabelBMFont
CCLabelBMFont::labelWithString(const char *str,   
                               const char *fntFile)
它是CCSpriteSheet的一個(gè)子類,對每一個(gè)字符就像一個(gè)CCSprite來對待,因此每個(gè)單獨(dú)的字符可以進(jìn)行旋轉(zhuǎn)、縮放、設(shè)置透明等操作。
所有字符都是使用anchorPoint(0.5, 0.5),所以最好不要更改它,會(huì)影響渲染。
 
使用該類之前,需要添加好字體文件,包括一個(gè)圖片文件(AA.png)和一個(gè)字體坐標(biāo)文件(AA.fnt)。兩個(gè)文件的名稱相同,只是擴(kuò)展名不同。

cocos2dx的ttf字體顯示

方法:

一.在info.plist上面添加Fonts provided by application 如下圖,然后下面添加對應(yīng)的字體:

ps:以下非常重要!

1.字體不要添加文件夾路徑。。。。。直接字體文件名包括擴(kuò)展名就行了,

例如字體在Resource/fonts/DPCarved.ttf,不要寫fonts/DPCarved.ttf,按照我上面就行了

2.注意到我上面標(biāo)紅了的文字嗎:Fonts provided by application 這里是有s的,網(wǎng)上面一堆不負(fù)責(zé)的文章圖片中有s,文章字里面就Font provided by application,坑死啦,程序員應(yīng)該知道一個(gè)字母或者大小寫的差別吧?

仔細(xì)再截圖說明一下

這個(gè)info.plist 中如果是Fonts provided by application,其文本是如下:

看到吧,文本中并不是顯示Fonts provided by application的!

而info.plist 中如果是Font provided by application,其文本是如下:

看到差別了吧。。。。

 二.代碼中應(yīng)用

CCLabelTTF *label = CCLabelTTF::create("中文exp:+1234567", "DPCarved", 40);

則可

這里重點(diǎn)要說一下第二個(gè)參數(shù)這個(gè)font family的名稱(上面標(biāo)紅的參數(shù)):

舉例說上面的微軟雅黑.ttf

很多人說mac中字體工具就能看到這個(gè)值,如下圖:

其實(shí)這是錯(cuò)的!。

CCLabelTTF *label = CCLabelTTF::create("中文exp:+1234567", "微軟雅黑", 40);//這是顯示不出來的

事實(shí)上需要這樣才能顯示出來:

CCLabelTTF *label = CCLabelTTF::create("中文exp:+1234567", "Microsoft Yahei", 40);

至于如何找這個(gè)font family出來。。。暫時(shí)我也沒什么好方法。。。比較笨的只知道GlyphDesigner這個(gè)程序能找到字體的font-family,如下圖

cocos2dx 3.0 TTF中文字體的使用說明

Q: 在cocostudio中顯示TTF中文字體的方法

A:引入的TTF文件要求字體內(nèi)部名和文件名都相同,可以使用Font Creator 軟件打開TTF文件,選擇Format菜單下的Name命令查看并修改,吃不準(zhǔn)的話就把所有的中文都改成和英語,最后記得把文件名也改成一樣的,這樣cocostudio才能正確讀取

Q: VS中中文硬編碼顯示亂碼的問題

A:label->setText("李四"); 比如這樣,默認(rèn)肯定是會(huì)顯示亂碼的,必須把文件設(shè)置為UTF8格式保存。在VS的文件-》高級(jí)保存設(shè)置 中,選擇編碼為 UTF8-無簽名 ,就能正確顯示

Q:3.0中UILable 控件改名問題

A: 3.0里面UILable變成了 Text,而不是Label 

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)