溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

關(guān)于CocoStudio中AtlasLabel控件后臺(tái)編碼的一點(diǎn)備注

發(fā)布時(shí)間:2020-07-18 13:49:17 來源:網(wǎng)絡(luò) 閱讀:1208 作者:googlingman 欄目:開發(fā)技術(shù)

適用版本: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è)置如下圖所示:

關(guān)于CocoStudio中AtlasLabel控件后臺(tái)編碼的一點(diǎn)備注

上述控件對(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ù)字串。




向AI問一下細(xì)節(jié)

免責(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)容。

AI