在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所示。
圖3-1 在屏幕上顯示不一樣效果的標籤this
在通常狀況下想要在屏幕上輸出一行文字只須要按照第01~04行的方法來建立一個標籤,而後再將它加入到場景中去就能夠了。最簡單的建立標籤的方法如範例第01~02行所示,其中create方法的6個參數含義分別是:spa
標籤中所顯示文字的內容code
標籤字體對象
標籤內容字體大小遊戲
標籤尺寸資源
標籤中文字在橫向和縱向的對齊方式
這看上去有點複雜,實在配不上「最簡單」的建立方法,因此通常在使用時能夠進一步簡化,僅保留前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被取消(實際仍然可使用),就要考慮使用其餘辦法來顯示自定義字體。目前主要有兩種方法:
一種是經過TTFConfig配置來建立,如範例第06~09行所示;
另外一種是使用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中播放聲音