文字渲染:
cclabelatlas、cclabelbmfont、cclabelttf類都是繼承 cclabelprotocol類,即能夠使用系統字,也能夠自己定義渲染字型。
cclabelatlas類使用作為文字的一種方式, 通過直接定義
cclabelatlas *label0 = cclabelatlas::create("asde test ", "tuffy_bold_italic-charmap.png", 46, 64, ' ');//引數順序:要顯示字元,路徑, 字元寬度,字元高度, 起始字元
label0->setposition(ccp(100, 200));
label0->setopacity(200);
this->addchild(label0);
cclabelatlas *label2 = cclabelatlas::create("456789123", "tuffy_bold_italic-charmap.png", 46, 64, ' ');
label2->setposition(ccp(visiblesize.width/2, visiblesize.height/2));
label2->setopacity(200);
this->addchild(label2);
//文字閃爍動畫
ccactioninterval *ac = ccfadeout::create(1.2f);
ccactioninterval *ac2 = ac->reverse();
label2->runaction(ccrepeatforever::create(ccsequence::create(ac, ac2, null)));
//使用plist配置檔案的描寫敘述來定義,能夠依據須要改動配置檔案資訊,包含路徑、字元寬度高度、起始字元
cclabelatlas* label1 = cclabelatlas::create("wer vbn", "./tuffy_bold_italic-charmap.plist");//引數順序:要顯示字元,plist檔案路徑
label1->setposition( ccp(10,100) );
label1->setopacity( 200 );
this->addchild(label1);
cclabelttf 類是通過系統字實現字型標籤
cclabelttf *ttf = cclabelttf::create("hello world ", "helvetica", 30, ccp(320, 30), kcctextalignmentleft);//引數順序:要顯示字元。字型檔名稱,字型大小。範圍大小。對齊方式[kcctextalignmentleft(左對齊) kcctextalignmentright(右對齊) kcctextalignmentcenter(中心對齊)]
ttf->setposition(ccp(300, 400));
this->addchild(ttf);
cctextfieldttf類輸入框使用文字標籤,繼承cclabelttf類
cctextfieldttf *ptest = cctextfieldttf::textfieldwithplaceholder("", "stheititc-light",40 );
ptest->setposition(ccp(300, 500));
this->addchild(ptest);
cclabelbmfont類中每乙個字都是乙個精靈,每乙個字都能夠定義動作,並支援fnt型別檔案
cclabelbmfont *label = cclabelbmfont::create("bitmap font atlas xub", "fonts/bitmapfonttest.fnt");
addchild(label);
ccsize s = ccdirector::shareddirector()->getwinsize();
label->setposition( ccp(s.width/2-200, s.height/2) );
label->setanchorpoint( ccp(0.5f, 0.5f) );
ccsprite* bchar = (ccsprite*) label->getchildbytag(0);//獲取第1字元'b'
ccsprite* fchar = (ccsprite*) label->getchildbytag(7);//獲取第7字元'f'
ccsprite* achar = (ccsprite*) label->getchildbytag(12);//獲取第12字元'a'
ccsprite* xchar = (ccsprite*) label->getchildbytag(18);//獲取第12字元'a'
//為字元建立動作
ccactioninterval* rotate = ccrotateby::create(2, 360);
ccaction* rot_4ever = ccrepeatforever::create(rotate);
ccactioninterval* scale = ccscaleby::create(2, 1.5f);
ccactioninterval* scale_back = scale->reverse();
ccsequence* scale_seq = ccsequence::create(scale, scale_back,null);
ccaction* scale_4ever = ccrepeatforever::create(scale_seq);
ccactioninterval* jump = ccjumpby::create(0.5f, ccpointzero, 60, 1);
ccaction* jump_4ever = ccrepeatforever::create(jump);
ccactioninterval* fade_out = ccfadeout::create(1);
ccactioninterval* fade_in = ccfadein::create(1);
ccsequence* seq = ccsequence::create(fade_out, fade_in, null);
ccaction* fade_4ever = ccrepeatforever::create(seq);
ccactioninterval *by = ccmoveby::create(1.0f, ccp(300, 300));
ccactioninterval *by2 = by->reverse();
ccsequence* seq_by = ccsequence::create(by, by2, null);
ccaction *ac_by = ccrepeatforever::create(seq_by);
bchar->runaction(rot_4ever);
bchar->runaction(scale_4ever);
fchar->runaction(jump_4ever);
achar->runaction(fade_4ever);
xchar->runaction(ac_by);
cocos2dX 文字的渲染
1 建立一段文字 create函式的三個引數分別為 文字內容 字型和字型大小 cclabelttf font cclabelttf create hello world 微軟雅黑 48 2 獲取文字的尺寸 font getcontentsize 返回的是乙個ccsize型別的值 該值有兩個屬性wid...
cocos2dx渲染流程
二 mainloop drawscene當中統計deltatime,再呼叫排程管理器update,opengl clearbuffer,設定渲染檢視矩陣,投影矩陣和紋理,呼叫當前場景visit 遞迴呼叫子節點 呼叫opengl渲染 前後臺緩衝區交換 呼叫統計函式,呼叫自動釋放池的pop。三 ccme...
cocos2dx 離屏渲染
今天才發現 cocos2dx 有乙個類叫做 ccrendertexture,封裝了 opengl render to texture 的 細節。這個類的是採用 fbo 把影象渲染到 自己新建的 frame buffer 來實現的。如果寫乙個 shader 比如讓影象變成灰色,如果只給乙個 ccspr...