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表示當前層接收到後終止不在向其他層傳遞。三 ...