cocos2d x之三種文字

2021-06-22 15:00:33 字數 1910 閱讀 3888

cocos2d-x為我們提供了三個類來處理文字資訊:

1.cclabelttf

2.cclabelbmfont

3.cclabelatlas

1.cclabelttf:

cclabelttf* plabel = cclabelttf::create(

"****vs"

, "arial"

, 30);

//要顯示的內容,字型,字型大小

//這裡也可以使用下面方法改變要顯示的內容

plabel->setstring("****vs"

);  

plabel->setposition(ccp(100, 100));  

this

->addchild(plabel, 1);  

2、cclabelbmfont

cclabelbmfont適合於需要頻繁更新的文字內容或者顯示好看華麗的文字內容。

cclabelbmfont是使用檔案顯示文字內容,相當於每次只是改變了的座標,cclabelbmfont中每個字元都是乙個精靈,可以單獨獲取執行動作。使用這個類的時候,一定要有乙個文字檔案(格式是png)和乙個文字座標檔案(格式是fnt),例如:

//要顯示的內容,字元座標檔案

cclabelbmfont* labelfont = cclabelbmfont::create("****vs"

, "bitmapfonttest.fnt"

);  

labelfont->setposition(ccp(winsize.width/2, winsize.height/2));  

addchild(labelfont);  

//cclabelbmfont中每個字元都是乙個精靈,可以用getchildbytag方法獲取其中的乙個字元作為精靈操作

ccsprite* sprite = (ccsprite*)labelfont->getchildbytag(3);  

sprite->runaction(ccjumpby::create(2.0f, ccp(0,0), 40, 5)); 

3、cclabelatlas

適合於顯示數字資訊,例如計分板,排行榜之類。

要使用這個類,必須要有乙個數字(格式:png),並且知道每個字元的寬度和高度,例如:

**也很簡單:

//cclabelatlas通過png檔案作為資源建立文字,引數:顯示內容,、單個數字寬度、

//高度、中第乙個字元的ascii碼,如字元為".",可以傳入46或者'.'都可以。

cclabelatlas* labelatlas = cclabelatlas::create("2013"

, "a.png"

, 12, 32, 46);  

labelatlas->setposition(ccp(300, 100));  

addchild(labelatlas);  

labelatlas->setscale(2.0f);  

這裡白白要提醒一下,一定要寫正確每個字元的寬高,否則出問題哦。

cclabelatlas類還可以使用plist檔案定義

cclabelatlas* labelatlas = cclabelatlas::create(

"2013 ****vs"

, "font.plist"

);  

labelatlas->setposition(ccp(300, 100));  

addchild(labelatlas);  

labelatlas->setscale(2.0f);  

cocos2d x之三種定時器的使用

定時器 可以讓某個函式不斷地去執行或者只執行一次,或者讓它每隔幾秒執行一次,cocos2d x為我們提供了三種定時器,分別是schedule,scheduleupdate,scheduleonce.其功能特點如下 1 scheduleupdate 加入當前節點後,程式會每幀都會自動執行一次預設的up...

Cocos2d x 文字渲染

文字渲染 cclabelatlas cclabelbmfont cclabelttf類都是繼承 cclabelprotocol類,即能夠使用系統字,也能夠自己定義渲染字型。cclabelatlas類使用作為文字的一種方式,通過直接定義 cclabelatlas label0 cclabelatlas...

Cocos2dx學習筆記(三)背景 文字

1 前一篇文章最後,執行程式後視窗內一片黑,沒有任何內容。是因為場景內沒有新增任何東西,現在就來逐一新增相應的內容。1 如下 include myhelloworldscene.h using ns cc boolmyhelloworldscene init while 0 returnbrct 2...