您的位置:首页 > 移动开发 > Cocos引擎

Cocos2d-X 学习笔记 18 CCLayerMultiplex管理多个层

2014-10-27 11:12 363 查看
cocos2d-x中提供了CClayerMultiplex类(派生自CClayer),它可以管理多个层,并实现不同层间的切换,但是同一时间只能有一个层是激活状态,其他都是不可见的



添加层进行管理

[cpp] view
plaincopy

static CCLayerMultiplex * create(CCLayer* layer, ... );

切换不同层

[cpp] view
plaincopy

// 切换到指定层

void switchTo(unsigned int n);



//切换到指定层,并释放当前层

void switchToAndReleaseMe(unsigned int n)

不过这货的缺点也很明显:功能有限,不能实现不同层之间切换的过渡效果

在cocos2d-x体重的实例:TestCpp中MenuTest中使用了CClayerMultiplex

[cpp] view
plaincopy

// 添加需要管理的层

void MenuTestScene::runThisTest()

{

CCLayer* pLayer1 = new MenuLayerMainMenu();

CCLayer* pLayer2 = new MenuLayer2();

CCLayer* pLayer3 = new MenuLayer3();

CCLayer* pLayer4 = new MenuLayer4();

CCLayer* pLayer5 = new MenuLayerPriorityTest();

CCLayer* pLayer6 = new BugsTest();



CCLayerMultiplex* layer = CCLayerMultiplex::create(pLayer1, pLayer2, pLayer3, pLayer4, pLayer5, pLayer6, NULL);

addChild(layer, 0);



......



CCDirector::sharedDirector()->replaceScene(this);

}



// 切换层



void MenuLayerPriorityTest::menuCallback(CCObject* pSender)

{

((CCLayerMultiplex*)m_pParent)->switchTo(0);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: