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