a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

Cocos2d-x UI開發之文本類使用實例

2020-01-26 15:20:00
字體:
來源:轉載
供稿:網友

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 精品国产乱码久久久久久久 | 伊人无码高清 | 日韩视频一区 | 亚洲在线免费观看 | 亚洲精品乱码久久久久久金桔影视 | 欧美日韩久久久久 | 成人久久免费 | 久久综合av| h在线看| 涩久久| 午夜激情视频在线观看 | 国产综合视频 | 欧美99| 国产男人的天堂 | 日本不卡免费新一二三区 | 国产成人在线视频 | 欧美在线观看一区 | 亚洲精品成人无限看 | 欧美a级成人淫片免费看 | 日韩在线免费电影 | 91精品电影 | 欧美乱操 | 精品在线一区二区三区 | 99国产精品久久久久久久 | 伊人网亚洲 | 欧美日韩精品在线观看 | 亚洲日韩视频免费观看 | 色就是色欧美 | 日韩高清在线播放 | 中文字幕在线免费 | 色老头在线观看 | 中文成人在线 | 婷婷成人在线 | 精品99久久久久久 | 国产精品一区欧美 | 国产精品久久久久9999赢消 | 中文字幕综合在线 | 51ⅴ精品国产91久久久久久 | 欧美一性一乱一交 | 亚洲日本aⅴ片在线观看香蕉 | 国产成人精品在线观看 |