Cocos2D-iphone 场景切换
2013-07-28 16:35
239 查看
常用操作
1.运行第一个场景我们一般是在应用程序代理AppDelegate的applicationDidFinishLaunching:方法结尾处运行游戏的第一个场景
[java] view
plaincopy
[[CCDirector sharedDirector] runWithScene: [HelloWorldLayer scene]];
这里的[HelloWorldLayer scene]返回的是一个CCScene对象
2.替换场景
[java] view
plaincopy
[[CCDirector sharedDirector] replaceScene:scene];
这个方法会用新的场景替换旧的场景,cocos2d会释放旧场景的内存,删除旧场景中所有的节点,停止所有动作和消息调度,因此我们不用手动释放旧场景的内存
3.推入和弹出场景
我们知道可以用replaceScene:来运行一个新场景,但是会释放掉旧场景的内存。有时候我们希望在不释放旧场景内存的前提下运行一个新场景,这时候就要用到CCDirector的pushScene:和popScene两个方法了。
1> 使用pushScene:方法推入一个新场景,新场景会层叠在旧场景的上面,但并没有释放旧场景的内存,旧场景继续保留在内存中
[java] view
plaincopy
[[CCDirector sharedDirector] pushScene:scene];
2> 使用popScene方法弹出最上层的场景并释放其内存,使保留在内存中的旧场景重新显示出来
[java] view
plaincopy
[[CCDirector sharedDirector] popScene];
CCTransitionScene
上面介绍了场景的切换,不过都是瞬间完成的,有时候我们想在场景切换的时候有些过渡效果,即以动画的形式切换场景,我们称之为"场景过渡"。要想做场景过渡效果,就必须用CCTransitionScene的子类,CCTransitionScene本身继承了CCScene,它包含了非常多的子类,每个子类都有不同的场景过渡效果,比如CCTransitionFade是淡入淡出效果,CCTransitionPageTurn是翻页效果。下面演示一个翻页效果:
[java] view
plaincopy
CCTransitionPageTurn *page = [CCTransitionPageTurn transitionWithDuration:0.5 scene:scene];
[[CCDirector sharedDirector] replaceScene:page];
意思是在0.5秒的时间内使用翻页效果从旧场景过渡到scene这个新场景,因为CCTransitionScene是CCScene的子类,所以可以作为replaceScene:的参数。
cocos2d中有非常多的过渡效果可以使用,都是CCTransitionScene的子类,类名一般都是以CCTransition开头的。我就不在这里一一介绍每个子类有什么效果,也没有必要,用到时自己再去查API吧。
注意:CCTransitionScene只能使用在replaceScene:和pushScene:的时候,在popScene弹出场景时是不能用这个过渡效果的
节点的生命周期
说到场景过渡,那就不得不说一下节点的生命周期,即一个节点从开始被添加到屏幕上 到 从屏幕中移除的过程,CCNode提供了相应的生命周期方法:[java] view
plaincopy
// 节点被添加到屏幕上 或者 重新显示到屏幕上 时调用
-(void) onEnter;
// 调用完onEnter后就会调用此方法,如果使用了场景过渡效果,将在场景过渡完毕后才调用此方法
-(void) onEnterTransitionDidFinish;
// 节点从屏幕中移除 或者 暂时离开屏幕 时调用
-(void) onExit;
//这个方法较少用
-(void)onExitTransitionDidStart
相关文章推荐
- Cocos2d-iPhone场景切换的基础知识
- cocos2d-x 3.0 场景切换特效汇总
- Cocos2d-x_场景切换常用特效和CCNode的生命周期函数
- Cocos2d-JS切换场景与切换特效
- Cocos2d-x3.2 33种场景切换
- cocos2d-x 3.0 场景切换奇效汇总
- Cocos2d-x3.2 33种场景切换
- cocos2d场景切换效果
- cocos2d-x场景切换与过渡效果
- Cocos2d中从场景切换到UIViewController视图方法总结
- Cocos2d-x 3.0 场景切换
- Cocos2d-x——场景切换的例子
- cocos2d-x 游戏暂停场景切换 注意事项
- 使用cocos2d-x 2.0.1 自动循环切换场景
- Cocos2d-x多场景切换生命周期
- Cocos2d-x场景切换相关函数介绍
- cocos2d-x 帧循环不严谨造成场景切换卡顿
- Cocos2d-x-lua游戏两个场景互相切换MainScene01切换到MainScene02
- [cocos2d]场景切换以及切换进度显示
- Cocos2d 场景切换特效