cocos2d x 文字標籤的用法

2021-07-11 01:39:01 字數 3334 閱讀 4302

cocos2d-x中標籤類,標籤類主要有三種:labelttf、labelatlas、labelbmfont,此外,3.x推出新的標籤類。

1、labelttf是使用系統中的字型,它是最簡單的標籤類,它是繼承node類,具有node類的基本屬性。

labelttf的其中乙個create函式如下:

static labelttf * create(

const std::string& string, 

const std::string& fontname, 

float fontsize,

const size& dimensions = size::zero, 

texthalignment halignment = texthalignment::center,

textvalignment valignment = textvalignment::top);

這裡我大家解釋下各個引數的作用:第乙個引數是我們要顯示的文字,他是乙個字串型別;第二個引數是我們字型檔案的路徑也是字串型別;第三個引數是我們要顯示字型的大小,是size型別;第四個引數是指在螢幕上占用的區域大小,可省略;第五個引數是指文字橫向對齊方式,也可省略;第六個引數是縱向對齊方式,可省略。

2、labelatlas是集標籤,其中atlas本意是「集」,這種標籤顯示的文字是從乙個集中取出來的,因此需要額外載入集檔案。

labelatlas比labelttf快很多。labelatlas中的每個字元必須有固定的高度和寬度。

static labelatlas* create(

const std::string& string, 

const std::string& charmapfile, 

int itemwidth, 

int itemheight, 

int startcharmap);

同樣的各個引數作用:第乙個引數也是要顯示的文字,第二個引數是檔名(包括檔案路徑,檔案是集檔案,格式.png);第

三、四個引數是該字型在集裡的高度和寬度,第五個引數是集的開始字元。

3、labelbmfont是點陣圖字型標籤,需要新增字型檔案:暴扣乙個集(.png)和乙個字元座標檔案(.fnt)。labelbmfont比labelttf快很多,labelbmfont中的每個字元的寬度是可變的。

labelbmfont是繼承node類,具有node類的基本特性。

static labelbmfont * create(

const std::string& str, 

const std::string& fntfile, 

float width = 0, 

texthalignment alignment = texthalignment::left,

const vec2& imageoffset = vec2::zero);

第乙個引數是要顯示的文字,第二個引數是fnt檔案(包括路徑),第三個引數是寬度,第四個是引數是橫向對齊方式,第五個引數是字型色調。

除以上這三個比較常見的文字字型類外,我們cocos2d-x 的label裡還有一些常用的函式,通過這些方法我們也可以建立我們想要的字型,下面我們來介紹一下他們:

1、label建立系統標籤物件,它的建立方法如下:

static label* createwithsystemfont(

const std::string& text, 

const std::string& font,

float fontsize,

const size& dimensions = size::zero, 

texthalignment halignment = texthalignment::left,

textvalignment valignment = textvalignment::top);

這裡我們就介紹下第三個引數,其他的引數上面有相同的,我就不介紹了,第三個引數是指改字型在螢幕中占用的大小。

2、label建立ttf字型標籤物件:

static label * createwithttf(

const std::string& text, 

const std::string& fontfilepath, 

float fontsize,

const size& dimensions = size::zero, texthalignment halignment = texthalignment::left,

extvalignment valignment = textvalignment::top);

引數介紹看上面的。

3、static label* createwithttf(

const ttfconfig& ttfconfig, 

const std::string& text, 

exthalignment halignment = texthalignment::left, 

int maxlinewidth = 0);

其中:第乙個引數是建立乙個ttfconfig結構體變數

我們看看這個結構體的整體

_ttfconfig(

const std::string& filepath = "",

float size = 12, 

const glyphcollection& glyphcollection = glyphcollection::dynamic,

const char *customglyphcollection = nullptr, bool usedistancefield = false, 

int outline = 0)

第乙個引數是字型檔案路徑

第二個引數是字型大小

第三個引數是字型庫型別

第四個引數是自定義字型庫

第五個引數是開啟距離字段字型開關

第六個引數是字型描邊。

4、label建立bm標籤物件

static label* createwithbmfont(

const std::string& bmfontpath, 

const std::string& text,

const texthalignment& halignment = texthalignment::left, 

int maxlinewidth = 0,

const vec2& imageoffset = vec2::zero);

引數介紹看上面。

好了,常用的建立文字的方法介紹的差不多了,在這裡要跟大家說下,其實在label裡的上面這些建立文字方法都可以用label的create方法代替,create過載了以上的四種方法,突然感覺create很強大。。。。

Cocos2d x 文字渲染

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

cocos2dX 文字的渲染

1 建立一段文字 create函式的三個引數分別為 文字內容 字型和字型大小 cclabelttf font cclabelttf create hello world 微軟雅黑 48 2 獲取文字的尺寸 font getcontentsize 返回的是乙個ccsize型別的值 該值有兩個屬性wid...

cocos2d x 單點事件用法

一 設定螢幕是可觸控的,添上一句話 settouchenabled true 二 註冊單點觸控事件 void registerwithtouchdispatcher addtargeteddelegate this,0,true 最後乙個引數設定為true表示當前層接收到後終止不在向其他層傳遞。三 ...