2013-08-20 86 views
2

我正在用cocos2dx開發2D遊戲,其中我還很新...在遊戲內部,有一些UI元素我想組合在一起(我打算將它們組合在一起到CCLayer s)。例如,幾個文本標籤和精靈形成一個CStatBar這是一個CCLayer。這CStatBar將包括在其他各種CCLayerCocos2dx sublayers

我該怎麼做?我創建了CStatBar類,然後在包含類的init()函數中,我CStatBar::create()和調用this->addChild(pStatBar)但是,statbar沒有出現......是否有任何明顯的事情我錯過了?所有的職位都是正確的。謝謝!

編輯:

注: 1.子層ccTouchesBegan叫,但它不會呈現/可見 2.如何調整子層,使其只覆蓋父層的部分區域?按說CStatBar應該只覆蓋屏幕,而不是整個屏幕的頂部面積的10%......

回答

3

CParent::init()函數內部,你可以初始化CSublayer像這樣:

 // Create and initialize CSublayer 
    CSublayer* pSublayer= CSublayer::create(); 
    float fWidth = pSublayer->getContentSize().width; 
    float fHeight = pSublayer->getContentSize().height; 
    pSublayer->setPosition(ccp(fWidth/2.0f, fHeight/2.0f)); 
    this->addChild(pSublayer); 

和你CSublayer可以像其他CCLayer一樣定義。

如果你想限制CSublayer成比CParent層小,你可以將其初始化函數內這樣做,像這樣:

CSublayer::init() { 
     // initialize the size with the size of the background sprite 
    CCSprite *pSpriteBackground = CCSprite::createWithSpriteFrame(
     CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("background.png") 
    ); 
    this->setContentSize(CCSize(pSpriteBackground->getContentSize().width, pSpriteBackground->getContentSize().height)); 
    pSpriteBackground->setPosition(ccp(fScreenHalfWidth, fScreenHeight-(pSpriteBackground->getContentSize().height/2.0f))); 
    this->addChild(pSpriteBackground); 
}