程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 【cocos2d-x學習筆記】三種文字類、批處理精靈、C++的四種cast,cocos2d-xcast

【cocos2d-x學習筆記】三種文字類、批處理精靈、C++的四種cast,cocos2d-xcast

編輯:C++入門知識

【cocos2d-x學習筆記】三種文字類、批處理精靈、C++的四種cast,cocos2d-xcast


三種顯示文字的類

CCLabelTTF, CCLabelAtlas, CCLabelBMFont

 

CCLabelTTF:使用系統字體每個字符串會生成一個紋理,顯示效率比較低下。適合無變化的文字

CCLabelAtlas: 使用NodeAtlas優化渲染,適合經常變化的數字,比如分數,金錢。

CCLabelBMFont: 使用CCSpriteBatchNode,很靈活,每個字符都是一個精靈,可以對每一個字符進行操作。

 

CCLabelAtlas *lable = CClabelAtlas::create("12434", "labelatlasing.png", 24, 32, '0');  根據啊思科碼,順序不能變

 

CCLabelBMFont *label = CCLabelBMFont::create("abc", "bitmapFontTest.fnt");  根據圖片來弄字體,原理是批處理精靈

CCArray *arr = label->getChildren();          獲取所有字符

CCSprite *spriteA = (CCSprite *)arr->objectAtIndex(0);   0表示第一個字符

spriteA->setRotation(90);      每個字符都能進行單獨的操作

 

PS:直接使用圖片,將文字畫在圖片上(局限: 分辨率、更換麻煩等)

CCSpriteBatchNode也是一個容器,但是他只能包容CCSprite對象,而且要求這些精靈來自同一個紋理。

CCSpriteBatchNode *batch = CCSpriteBatchNode::create("CloseNormal.png");

addChild(batch);

CCSprite *sprite = CCSprite::createWithTexture(batch->getTexture());

batch->addChild(sprite);

 

C++的4種cast

C++引入cast是為了減少因類型轉換造成的錯誤,能在編譯、運行時期檢查轉換問題

 

static_cast 是在編譯時期檢查,cast兩邊要求有一邊可以做隱式轉化,才能用static_cast

dynamic_cast 是在運行時期檢查,用於具有虛函數的父類和子類之間的類型轉換

const_cast 把常量轉換為非常量

reinterpret_cast  這個叫做重解釋,沒有什麼用。

 




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