圖層在cocos2d-x中很重要,我們可以在其中添加精靈,也可以將圖層添加到場景中。這幾個圖層類功能各不相同,具體的看代碼的注釋。大家只需要替換掉helloworld中的init函數就可以運行了。
bool HelloWorld::init(){ bool bRet = false; do { CC_BREAK_IF(! <a href="http://www.5lwq4hdr.cn/" title="View all posts in CCLayer" class="tag_link">CCLayer</a>::init()); //CCLayerColor繼承自CCLayer,CCLayerColor有顏色,所以在create的時候需要傳入參數,ccc4是一個宏定義,參數是r,g,b,o(o就理解為透明值吧255表示不透明) CCLayerColor * color = CCLayerColor::create(ccc4(255,0,0,255)); //this->addChild(color); //CCLayerGradient繼承自CCLayerColor,它有重載的三個create函數,傳入倆個參數的時候從第一種顏色漸變到第二種顏色,方向是從上到下漸變 CCLayerGradient * gradient = CCLayerGradient::create(ccc4(255,0,0,255),ccc4(0,255,0,255)); this->addChild(gradient); //以下是CCLayerGradient的第三個重載函數,第三個參數表示的是漸變的方向,是一個向量,這里是ccp(1,0)當然就是從左往右漸變了,如果不理解,請參照坐標系統 CCLayerGradient * gradientT = CCLayerGradient::create(ccc4(255,0,0,255),ccc4(0,255,0,255),ccp(1,0)); //this->addChild(gradientT); //繼承自CCLayer,可以包含多個圖層,這些圖層可以作為參數添加進來,最后以NULL結束代表圖層添加完畢 //它可以管理多個層,并實現不同層間的切換,但是同一時間只能有一個層是激活狀態,其他都是不可見的。 CCLayerMultiplex * multiplex = CCLayerMultiplex::create(color,gradient,gradientT,NULL); //運行這句話的時候請注釋掉上邊的addChild函數,否則一個圖層被添加了倆次會出現錯誤的 //this->addChild(multiplex); //默認情況下會顯示第一個圖層,使用如下的方法可以改變 //multiplex->switchTo(0); //以下這句話會釋放掉圖層0,并且轉換到圖層1,但這個函數這里不能使用,因為會釋放掉圖層0,而圖層0不是同過new出來的,這是cocos2d-x的內存管理機制 //multiplex->switchToAndReleaseMe(1); bRet = true; } while (0); return bRet;}
新聞熱點
疑難解答
圖片精選