Cocos2d-x UI開辟之文本類應用實例。本站提示廣大學習愛好者:(Cocos2d-x UI開辟之文本類應用實例)文章只能為提供參考,不一定能成為您想要的結果。以下是Cocos2d-x UI開辟之文本類應用實例正文
cocos2d-x中有三個文本類,用來在屏幕上顯示文字,這三個類分離是CCLabelTTF、CCLabelBMFont、CCLabelAtlas。這三個類都繼續自籠統類CCLabelProtocol,所以具有了setString()轉變文本信息的辦法和getString()取得文本信息的辦法。
bool HelloWorld::init()
{
bool bRet = false;
do
{
CC_BREAK_IF(! CCLayer::init());
CCSize size = CCSizeMake(CCDirector::sharedDirector()->getWinSize().width/3,320);
//1、CCLabelTTF的界說以下,第一個是要顯示的文字,第二個是字體,第三個是字體的年夜小,第四個是文字標簽的尺寸
//文字標簽太小就不克不及完整的顯示字體,太年夜就糟蹋了空間,第五個是程度對齊方法,第六個是垂直對齊方法
/*static CCLabelTTF * create (const char *string, const char *fontName, float fontSize,
const CCSize &dimensions, CCTextAlignment hAlignment, CCVerticalTextAlignment vAlignment)*/
//2、CCTextAlignment的值可所以:kCCTextAlignmentLeft kCCTextAlignmentCenter kCCTextAlignmentRight
//3、CCVerticalTextAlignment的值可所以:kCCVerticalTextAlignmentTop kCCVerticalTextAlignmentCenter kCCVerticalTextAlignmentBottom
//4、普通情形下後三個參數是不消的,只須要記住前三個就ok了
//5、CCLabelTTF繼續自CCSprite(就是一張繪制著文字的紋理圖片),所以精靈具有的一切功效CCLabelTTF都可以有,包含扭轉,縮放甚麼的
//6、這三個字體標簽都可以經由過程setString()來轉變標簽中的內容,然則CCLabelTTF一轉變標簽中的內容就會從新繪制,糟蹋了時光和空間,所以在創立了文字就不轉變內容的條件下我們應用它
CCLabelTTF * ttf = CCLabelTTF::create("Hello Cocos2d-x","Arial",32,size,kCCTextAlignmentLeft,kCCVerticalTextAlignmentTop);
//CCPoint()和ccp(),CCPointMake()的用法一樣,功效雷同。
ttf->setPosition(CCPoint(240,160));
this->addChild(ttf);
/*起首拷貝E:\cocos2d-x-2.2\cocos2d-x-2.2\samples\Cpp\TestCpp\Resources下的文件fps_images.png到本身
項目標resource目次下,翻開這個.png文件看到的是. / 0 1 2 3 4 5 6 7 8 9這些字體就是我們要顯示的字體*/
//說明一下CCLabelAtlas各個參數的寄義
//第一個參數是我們要顯示的內容,這個內容必需包括在我們適才翻開的那張圖片中,第二個參數就是資本的稱號了
//第三個參數是該資本中每一個字體的年夜小,即寬度和高度,最初一個參數是這些字體的肇端字符
//說明一下它的顯示道理,我們要顯示的是2014/2/10,因而法式找到了資本文件fps_images.png,定位到肇端字符
//然後依據2的assic碼,和肇端字符的assic碼相減找到偏移的地位,然後依據寬度和高度掏出2,
//所以資本中的字體的assic碼必需是持續的
//CCLabelAtlas普通應用在顯示常常變更的數字的時刻比擬快,效力高,就像我們顯示的誰人幀率,就是用的CCLabelAtlas
CCLabelAtlas * atlas = CCLabelAtlas::create("2014/2/10","fps_images.png",12,32,'.');
atlas->setPosition(CCPointMake(70,100));
this->addChild(atlas);
//赓續setString()也只需襯著一次,完成秒表功效的時刻常常用到
atlas->setString("2014/2/11");
//CCLabelBMFont須要我們應用到資本文件,這些資本文件包括了我們要應用的文字,網上有專門的對象可以制造這些
//我們須要稱號雷同的倆個文件,一個以.fnt開頭,就是我們的第二個參數,一個以.png開頭
//拷貝E:\cocos2d-x-2.2\cocos2d-x-2.2\samples\Cpp\TestCpp\Resources\fonts到我們的resource文件夾
//第一個參數就是我們要顯示的內容,這個內容在誰人文件中必需得有,然則中文字體不曉得怎樣回事,不克不及顯示,留下今後研討吧
//這個文本類重要是來豐碩我們的字體的,可以應用對象做一些悅目的字體顯示在屏幕上
//2014裡邊的每一個字體可以看作是零丁的一個精靈,可以經由過程getChildByTag()辦法獲得
CCLabelBMFont * font = CCLabelBMFont::create("2014","bitmapFontChinese.fnt");
font->setPosition(ccp(160,160));
this->addChild(font);
bRet = true;
} while (0);
return bRet;
}