程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> Cocos2d-x UI開辟之文本類應用實例

Cocos2d-x UI開辟之文本類應用實例

編輯:關於C++

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved