您好,登錄后才能下訂單哦!
適用版本:CocoStudio 1.4.0.1
我們知道,CocoStudio搭配Cocos2d-x開發(fā)是最省力的選擇。但是,要想實(shí)現(xiàn)這一點(diǎn),需要開發(fā)者對(duì)于示例工作Demo---TestCpp中幾乎所有編碼都要有細(xì)致的理解。
問題
在當(dāng)前的CocoStudio版本中,要實(shí)現(xiàn)圖像化顯示數(shù)字的一種重要方法就是借助于UI編輯器提供的AtlasLabel控件。這個(gè)控件與示例工作Demo---TestCpp中的CCLabelAtlas控件基本是對(duì)應(yīng)的。因此,理解了這里的CCLabelAtlas使用思路,則通過后臺(tái)編碼操縱CocoStudio的UI編輯器提供的AtlasLabel控件就非常容易了。
例如,我的UI編輯器提供的AtlasLabel控件設(shè)置如下圖所示:
上述控件對(duì)應(yīng)的圖像文件為png格式(其中旋轉(zhuǎn)的各個(gè)字符應(yīng)該是等寬度的,以便下面使用各個(gè)參數(shù)獲取之用)。內(nèi)容為“0123456789”。其中幾個(gè)重要參數(shù)含義如下:
標(biāo)簽首字符:要從圖像文件中獲取的第一個(gè)字符(其他的字符都以它為起點(diǎn),因此,這個(gè)首字符的確定非常重要,其前面的字符將不會(huì)顯示)
標(biāo)簽字符寬:每個(gè)圖形字符的寬度
標(biāo)簽字符高:每個(gè)圖形字符的高度
文本:以后使用控件時(shí)要顯示的所有字符的集合(很可能是上述png文件字符內(nèi)容集合中的一個(gè)子集)
技巧:
在設(shè)置上面參數(shù)時(shí),特別是調(diào)整“標(biāo)簽字符寬”時(shí),要確保相應(yīng)控件中要顯示的所有圖形字符都要顯示出來(最好恰好),如上圖心形上面的數(shù)字顯示形式。這樣一來,以后通過控件的后臺(tái)代碼給控件賦值時(shí),才能保證數(shù)字標(biāo)簽內(nèi)容正確顯示。
也就是說,上面的參數(shù)化設(shè)置相當(dāng)于使用如下后臺(tái)代碼初始化了上述控件(FROM FILE ‘UILabelAtlasTest.cpp’):
UILabelAtlas* labelAtlas = UILabelAtlas::create(); labelAtlas->setProperty("1234567890", "cocosgui/labelatlas.png", 17, 22, "0"); labelAtlas->setPosition(ccp((widgetSize.width) / 2, widgetSize.height / 2.0f)); m_pUiLayer->addWidget(labelAtlas);
上述代碼主要是初始化了控件,至于設(shè)置控件的實(shí)際文本數(shù)據(jù)則使用如下代碼:
//set string value for labelatlas. void setStringValue(const std::string& value);
對(duì)于我上面使用CocoStudio創(chuàng)建的UI控件,我使用了如下代碼設(shè)置它的實(shí)際要顯示的數(shù)字字符串值:
LabelAtlas* AtlasLabel_1 = static_cast<LabelAtlas*>(ul->getWidgetByName("AtlasLabel_1")); AtlasLabel_1->setStringValue(CCString::createWithFormat("%d",500)->m_sString);
小結(jié)
正確理解UI編輯器中AtlasLabel控件的上述幾個(gè)參數(shù)的含義至關(guān)重要;否則,可能引起后臺(tái)代碼的操作混亂,以致于無法正常顯示要顯示的數(shù)字串。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。