分类:Cocos2d-x@H_403_2@
2013-02-21 11:29@H_403_2@
7954人阅读@H_403_2@
评论(5)@H_403_2@
收藏@H_403_2@
举报@H_403_2@
游戏暂停界面:@H_403_2@
cocos2d-x中游戏暂停界面提供的思路是用pushScene()和popScne(),即推进和弹出场景,当游戏暂停时,推进(pushScene())暂停场景,之前运行的场景将会自动暂停,然后我们可以在暂停场景中操作,如Resume,ReStart,Quit等,当我们不再需要暂停场景时,可以popScene()将暂停场景弹出。(场景就像一张纸,我们推进一个场景,相当于在这张纸上再盖上一张,弹出场景相当于将最表面的那张纸拿掉)。
推进暂停场景的相关代码如下:
- CCRenderTexture*renderTexture=CCRenderTexture::create(800,600);@H_403_2@@H_403_2@
- renderTexture->begin();@H_403_2@
- this@H_403_2@->getParent()->visit();@H_403_2@@H_403_2@
- renderTexture->end();//这里实际是通过CCRenderTexture保存当前界面(相当于截屏),然后传递给暂停界面,当成背景精灵@H_403_2@@H_403_2@@H_403_2@
- @H_403_2@
- CCDirector::sharedDirector()->pushScene(PauseLayer::scene(renderTexture,true@H_403_2@));@H_403_2@@H_403_2@
暂停场景PauseLayer的相关代码如下:
copy
- CCScene*PauseLayer::scene(CCRenderTexture*sqr,@H_403_2@bool@H_403_2@isFlip){@H_403_2@@H_403_2@
- CCScene*m_scene=CCScene::create();@H_403_2@
- CCSprite*_spr=CCSprite::createWithTexture(sqr->getSprite()->getTexture());@H_403_2@
- _spr->setPosition(ccp(400,300));@H_403_2@
- _spr->setFlipY(isFlip);@H_403_2@
- _spr->setColor(ccGRAY);@H_403_2@
- m_scene->addChild(_spr);@H_403_2@
- //'layer'isanautoreleaSEObject@H_403_2@@H_403_2@@H_403_2@
- PauseLayer*layerr=PauseLayer::create();@H_403_2@
- @H_403_2@
- //addlayerasachildtoscene@H_403_2@@H_403_2@@H_403_2@
- m_scene->addChild(layerr);@H_403_2@
- //returnthescene@H_403_2@@H_403_2@@H_403_2@
- return@H_403_2@m_scene;@H_403_2@@H_403_2@
- }@H_403_2@