cocos2d x學習之新增顯示文字

2021-08-27 07:38:17 字數 1606 閱讀 7138

在 cocos2d 中有三個類可以在層或精靈中新增文字:

cclabelttf

cclabelttf每次呼叫 setstring (即改變文字)的時候,乙個新的opengl紋理將會被建立.。這意味著setstring 和建立乙個新的標籤一樣慢。所以,當你需要頻繁的更新它們的時候,盡可能的不用去使用標籤物件。 而應該使用cclabelatlas或者是cclabelbmfont。

ok, 看下它的使用方法

cclabelttf *label = cclabelttf::labelwithstring("hello world", ccsizemake(100, 25), (cctextalignment)intalign, strfontname, fontsize);

label->setanchorpoint(ccp(0, 0));

label->setposition = ccp(100,100);

cclabelbmfont

cclabelbmfont

相當於每次改變只改變了座標,而cclabelttf要重新渲染.這個類使用之前,需要新增好字型檔案,包括乙個檔案 (**.png) 和乙個字型座標檔案(**.fnt)。使用方法:

假設字型檔案為:fonts/bmfont.fnt

cclabelbmfont

*label cclabelbmfont::labelwithstring("hello world", "fonts/bmfont.fnt");

layer->addchild(label);

label->setancherpoint(ccp(0, 0));

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

label->setstring(" ");

這個沒辦法指定字型的字型大小,但可以用 scale 屬性進行縮放來調整大小。就當它是sprite。

cclabelatlas

如果你用cocos2d專案模板建立過專案,那麼你已經看過它的效果了,就是左下角顯示幀率的數字。因為幀率一直在變,使用cclabelttf的話效率太低,因為只是數字所以也犯不上使用cclabelbmfont 載入那麼大的文字影象,所以使用這個比較合適。

cclabelatlas *label = cclabelatlas::labelwithstring(labelwithstring, charmapfile, itemwidth, itemheight, startchar);

這個只能顯示影象上面的字元。

解釋一下引數,

labelwithstring就是字元,

charmapfile 就是字元的影象檔案(這個只要影象檔案就可以了),

itemwidth是每個字元的寬度,

itemheight是每個字元的高度,這個不能設錯,否則顯示的時候可能就不對了。

最後乙個是起始字元,它是使用這個其實字元來對應字元和影象關係的。

cocos2dx顯示中文

從外部檔案讀取utf 8 推薦大家使用資源檔案進行配置儲存,如xml將其採用的utf 8的編碼方式儲存,自然會讓我想到,日文 韓文等待各種國家的語言都可以正常顯示了,為了你的軟體國際化.盡量採用這種方式吧!到時候根據手機系統的語言,然後動態的來讀取你檔案中的資源.先看下我們的xml檔案 html v...

cocos2d x 之 新增sns分享

步驟一 先寫activity內容 其實就是share函式。package org.jw.bj import org.cocos2dx.lib.cocos2dxactivity import android.content.intent import android.net.uri import an...

cocos2dx新增虛擬彈幕

給單機遊戲新增準備好的彈幕。直接上 作為乙個記錄 在gamelayer.h中宣告控制項和方法 public virtual void update float dt 更新 void adddanmu float dt 新增彈幕 private node panel danmu 彈幕 float da...