《Cocos2d-x遊戲開發實戰精解》學習筆記2--在Cocos2d-x中顯示一行文字

在Cocos2d-x中要顯示文字就須要用到Label控件。在3.x版本的Cocos2d中,捨棄了以前版本所使用的LabelTTF、LabelAtlas、LabelBMFont 3個用於顯示文字的類,而使用一個新類Label取代。可想而知,Label實際上就是對以前3個類進行從新封裝並統一渲染。segmentfault

提示:實際上老版本的內容在3.x版本中依然是可使用的。ide

下面是在Cocos2d-x中顯示文字的一個例子,具體完整項目可在源文件本章目錄下找到項目ChapterThree01查看。學習

【範例3-1 在Cocos2d-x中顯示文字】字體

auto label1 = Label::create("this is the first label","Arial",36,     Size::ZERO,TextHAlignment::LEFT,TextVAlignment::TOP);         //建立標籤
label1->setPosition(210, 310);                                                //設置標籤位置
addChild(label1);                                                             //加入到場景中
//經過TTFConfig在標籤中使用自定義字體
TTFConfig ttfconfig("fonts/chunkmuffinhollowwide.ttf", 36);                    //建立TTFConfig對象
auto label2 = Label::createWithTTF(ttfconfig,"this is the second label");      //建立標籤
label2->setPosition(270,250);                                                  //設置標籤位置
addChild(label2);                                 //將標籤加入到場景中
//使用createWithTTF方法建立使用自定義字體的標籤
auto label3 = Label::createWithTTF("this is the third label","fonts/Marker Felt.ttf",36);
label3->setPosition(200, 190); 
addChild(label3);                                          //將標籤加入到場景中
//爲標籤加入陰影和邊框效果
auto label4 = Label::createWithTTF("this is the fourth label", "fonts/Marker Felt.ttf", 36);
label4->setPosition(280,130);                                  //設置標籤位置
label4->enableShadow(Color4B::GREEN, Size(5, 5));              //設置陰影效果
label4->enableOutline(Color4B::RED, 3);                        //設置邊框效果
addChild(label4);                                           //將標籤加入到場景中
//建立帶發光效果的標籤
auto label5 = Label::createWithTTF("this is the fifth label", "fonts/Marker Felt.ttf", 36);
label5->setPosition(200, 70);                              //設置標籤位置
label5->enableGlow(Color4B::GREEN);                          //設置光效
addChild(label5);                                        //將標籤加入到場景中

運行以後的效果如圖3-1所示。
210405_hkNU_2633993.png
圖3-1 在屏幕上顯示不一樣效果的標籤this

在通常狀況下想要在屏幕上輸出一行文字只須要按照第01~04行的方法來建立一個標籤,而後再將它加入到場景中去就能夠了。最簡單的建立標籤的方法如範例第01~02行所示,其中create方法的6個參數含義分別是:spa

  1. 標籤中所顯示文字的內容code

  2. 標籤字體對象

  3. 標籤內容字體大小遊戲

  4. 標籤尺寸資源

  5. 標籤中文字在橫向和縱向的對齊方式

這看上去有點複雜,實在配不上「最簡單」的建立方法,因此通常在使用時能夠進一步簡化,僅保留前3項參數,好比本範例第01行就能夠改寫成:

auto label1 = Label::create("this is the first label","Arial",36);

顯示的文字如圖3-1第一行所示,因此說在Cocos2d中顯示文字是很是容易的。然而不能忘記的是,學習Cocos2d的目的主要仍是爲了作遊戲,這樣單調的文字天然是遠遠不能適應遊戲的須要,因此就須要在標籤中使用更加個性化的字體。

在Cocos2d 2.x版本中,可使用LabelTTF類建立標籤來使用TTF格式的字體,然而在Cocos2d 3.x中因爲LabelTTF被取消(實際仍然可使用),就要考慮使用其餘辦法來顯示自定義字體。目前主要有兩種方法:

  1. 一種是經過TTFConfig配置來建立,如範例第06~09行所示;

  2. 另外一種是使用createWithTTF方法建立使用TTF字體的標籤,如範例第11~13行所示。

這兩種方法從本質上來講都是從資源目錄下讀取TTF格式的字體文件,能夠在項目目錄下找到Resources|fonts文件夾,將從網上下載的字體文件存放在這裏。

爲了讓字體具備更強大的視覺衝擊力,還能夠給文字加入陰影和邊框以及外發光的效果。如範例第17行就是給標籤加入陰影,其中Color4B::GREEN是陰影的顏色而Size(5, 5)是陰影相對於文字的相對位置。第18行則是用來設置文字邊框的,兩個參數分別用來設置邊框顏色和寬度。第23行爲文字加入的外發光效果只有一個參數,那就是光效的顏色。

《Cocos2d-x遊戲開發實戰精解》學習筆記1--在Cocos2d中顯示圖像
《Cocos2d-x遊戲開發實戰精解》學習筆記2--在Cocos2d-x中顯示一行文字
《Cocos2d-x遊戲開發實戰精解》學習筆記3--在Cocos2d-x中播放聲音

相關文章
相關標籤/搜索