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; }