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

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

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

下面是在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所示。

圖3-1 在屏幕上顯示不同效果的標籤

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

l  標籤中所顯示文字的內容

l  標籤字體

l  標籤內容字體大小

l  標籤尺寸

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

這看上去有點複雜,實在配不上“最簡單”的創建方法,所以一般在使用時可以進一步簡化,僅保留前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被取消(實際仍然可以使用),就要考慮使用其他辦法來顯示自定義字體。目前主要有兩種方法:

l  一種是通過TTFConfig配置來創建,如範例第06~09行所示;

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

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

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章