溫馨提示×

溫馨提示×

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

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

CocoStudio場景編輯器開發(fā)之組件定位

發(fā)布時(shí)間:2020-07-07 16:11:41 來源:網(wǎng)絡(luò) 閱讀:372 作者:googlingman 欄目:開發(fā)技術(shù)

CocoStudio中場景編輯器是游戲運(yùn)行的最關(guān)鍵場所,盡管DEMO中提供了各種類型的例子,但是在涉及到組件定位時(shí),還是空白。
例如,DEMO中僅提供了這樣的代碼:

 CCNode *pNode = SceneReader::sharedSceneReader()->createNodeWithSceneFile("scenetest/SpriteComponentTest/SpriteComponentTest.json");
    if (pNode == NULL)
    {
        return NULL;
    }

    CCActionInterval*  action1 = CCBlink::create(2, 10);
    CCActionInterval*  action2 = CCBlink::create(2, 5);

    CCComRender *pSister1 = static_cast<CCComRender*>(pNode->getChildByTag(10003)->getComponent("CCSprite"));
    pSister1->getNode()->runAction(action1);

顯然,運(yùn)行各種各樣的ACTION,幾乎是每一個(gè)游戲必需的。而上面的例子中僅提供了簡單的理想情況下的位移操作。

那么,如果定位一個(gè)組件呢?

答案

  請(qǐng)參考下面代碼:

 CCComRender *r =static_cast<CCComRender*>(m_pCurNode->getChildByTag(10015)->getComponent("CCSprite_D1"));
    PLACEHOLDER_HALF_HEIGHT=r->getNode()->getContentSize().height*0.5;

通過上面代碼,可以(而且必須這樣)訪問到精靈組件的大小等數(shù)據(jù),但是如果定位組件位置就不行了。例如下面:

CCPoint point=r->getNode()->getPosition();

這樣得到的坐標(biāo)只是一個(gè)(0,0)?。。?/span>

要得到上面精靈組件的坐標(biāo)可以使用如下方法:

CCPoint point=m_pCurNode->getChildByTag(10015)->getPosition();

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

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI