您的位置:首页 > 其它

[基础总结]临时场景的使用

2011-08-25 15:07 274 查看
临时场景的使用本来是为了玩游戏的时候突然电话来了,而将游戏内容暂时存储,等打完电话又回到游戏中接着玩,但是一想其实在游戏中的菜单项或者暂停菜单也可以直接用它。所以直接都使用临时场景算了。

首先,临时场景因为本身是覆盖在游戏场景上的,而游戏场景并未被推出,所以临时场景的代码可以直接在游戏场景的主文件里面写,当然也可以另外开个头文件去写。

调出临时场景的代码如下:

// 1.
一个 CCRenderTexture
用以存储当前场景(你就是要在这上面弹出界面)的界面

CGSize winSize = [[CCDirector
sharedDirector] winSize];

CCRenderTexture* renderTexture = [CCRenderTexture
renderTextureWithWidth:winSize.width
height:winSize.height];

[renderTexture
begin];

// [playingScene visit];
[renderTexture
end];

[renderTexture
setPosition:ccp(winSize.width/2, winSize.height/2)];

//2. pauseScene
是要弹出的界面场景,看起来还有上一个界面,实际上已经切换了一个场景

CCScene* pause = [CCScene
node];

// 3. 一个 CCLayerColor/CCColorLayer
(这两个一样)
用以在上一个界面覆盖一层, 实现暗灰效果

CCLayerColor* colorLayer = [CCLayerColor
layerWithColor:ccc4(0,
0, 0,
128)];
[pause
addChild:renderTexture];
[pause
addChild:colorLayer];
[pause
addChild:[pauseScene
node]];

[[CCDirector
sharedDirector] pushScene:pause];
代码具体的含义备注上基本已经写了,需要注意的是,原本我天真的以为调回原场景只需用跟PUSH相反的popSnece就行了,但cocos2d里面,popSnece居然
是停止当前场景的意思,所有还得用pauseScene再跳回去才行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: