cocos2dx 场景切换效果与调用顺序

本文详细介绍了Cocos2d-x中场景切换的实现方式,包括replaceScene方法的调用顺序以及多种过渡效果的使用,如Fade、Flip、Slide等,帮助开发者创建丰富的场景转换效果。
Cocos2dx为两个场景之间切换,提供丰富的切换动画效果,例如:渐隐,翻页等。转换场景类继承自CCScene。 
场景切换的实现很简单,调用单例的replaceScene函数,其参数为创建的切换效果。如下:

CCDirector::sharedDirector( )->replaceScene(CCTransitionFade::create(1.0, TargetScene));

(TargetScene是用户自定义的、要显示的场景的对象指针)


使用 replaceScene 方法,场景切换中init、onEnter、onEnterTransitionDidFinish的调用顺序如下:
1) 第2个场景的 init 方法
2) 第2个场景的 onEnter 方法
3) 第1个场景的 onExit 方法
4) 第2个场景的 onEnterTransitionDidFinish 方法

切换效果列表:

[1]:CCTransitionCrossFade::create(时间,目标场景); //慢慢淡化到目标场景
[2]:CCTransitionFade::create(时间,目标场景); //当前场景变暗消失后目标场景慢慢出现
[3]:CCTransitionFadeBL::create(时间,目标场景); //当前场景右上角到左下角方块消失到目标场景
[4]:CCTransitionFadeDown::create(时间,目标场景); //当前场景从上到下横条消失到目标场景
[5]:CCTransitionFadeTR::create(时间,目标场景); //当前场景左下角到右上角方块消失到目标场景
[6]:CCTransitionFadeUp::create(时间,目标场景); //当前场景从下到上横条消失到目标场景
[7]:CCTransitionFlipAngular::create(时间,目标场景,样式 ); //当前场景翻转消失到目标场景(斜上方)
   //样式(可以不写,使用缺省样式):
    kCCTransitionOrientationLeftOver(左向右翻转)
    kCCTransitionOrientationRightOver(右向左翻转)
[8]:CCTransitionFlipX::create(时间,目标场景,样式); //当前场景翻转消失到目标场景(X轴)
   //样式(可以不写,使用缺省样式):
      kCCTransitionOrientationLeftOver(左向右翻转)
      kCCTransitionOrientationRightOver(右向左翻转)
[9]:CCTransitionFlipY::create(时间,目标场景); //当前场景翻转消失到目标场景(Y轴)
   //样式(可以不写,使用缺省样式):
   //kCCTransitionOrientationUpOver(下向上翻转)
   //kCCTransitionOrientationDownOver(上向下翻转)
[10]:CCTransitionJumpZoom::create(时间,目标场景);   //当前场景跳动消失后目标场景跳动出现
[11]:CCTransitionMoveInB::create(时间,目标场景);   //目标场景由整体从下面出现
[12]:CCTransitionMoveInL::create(时间,目标场景);   //目标场景由整体从左面出现
[13]:CCTransitionMoveInT::create(时间,目标场景);   //目标场景由整体从上面出现
[14]:CCTransitionMoveInR::create(时间,目标场景);   //目标场景由整体从右面出现
[15]:CCTransitionPageTurn::create(时间,目标场景,bool);      //翻页切换
// bool为true是向前翻; false是向后翻
[16]:CCTransitionProgressHorizontal::create(时间,目标场景);   //当前场景从左到右消失同时目标场景出现
[17]:CCTransitionProgressInOut::create(时间,目标场景);   //当前场景从中间到四周消失同时目标场景出现
[18]:CCTransitionProgressOutIn::create(时间,目标场景);   //当前场景从四周到中间消失同时目标场景出现
[19]:CCTransitionProgressRadialCCW::create(时间,目标场景);   //当前场景逆时针消失到目标场景
[20]:CCTransitionProgressRadialCW::create(时间,目标场景);//当前场景顺时针消失到目标场景
[21]:CCTransitionProgressVertical::create(时间,目标场景);   //当前场景从上到下消失同时目标场景出现
[22]:CCTransitionRotoZoom::create(时间,目标场景);   //当前场景旋转消失后目标场景旋转出现
[23]:CCTransitionShrinkGrow::create(时间,目标场景);   //当前场景缩小切换到目标场景放大
[24]:CCTransitionSlideInB::create(时间,目标场景);   //当前场景向上滑动到目标场景
[25]:CCTransitionSlideInL::create(时间,目标场景);   //当前场景向右滑动到目标场景
[26]:CCTransitionSlideInR::create(时间,目标场景);   //当前场景向左滑动到目标场景
[27]:CCTransitionSlideInT::create(时间,目标场景);   //当前场景向下滑动到目标场景
[28]:CCTransitionSplitCols::create(时间,目标场景);   //当前场景三矩形上下消失后目标场景三矩形上下出现
[29]:CCTransitionSplitRows::create(时间,目标场景);     //当前场景三矩形左右消失后目标场景三矩形左右出现
[30]:CCTransitionTurnOffTiles::create(时间,目标场景);   //当前场景小方块消失到目标场景
[31]:CCTransitionZoomFlipAngular::create(时间,目标场景,样式);   //当前场景翻转消失到目标场景(斜上方)
   //样式(可以不写,使用缺省样式):
   //kCCTransitionOrientationLeftOver(左向右翻转)
   //kCCTransitionOrientationRightOver(右向左翻转)
[32]:CCTransitionZoomFlipX::create(时间,目标场景,样式);   //当前场景翻转消失到目标场景(X轴)
   //样式(可以不写,使用缺省样式):
   //kCCTransitionOrientationLeftOver(左向右翻转)
   //kCCTransitionOrientationRightOver(右向左翻转)
[33]:CCTransitionZoomFlipY::create(时间,目标场景,样式);   //当前场景翻转消失到目标场景(Y轴)
   //样式(可以不写,使用缺省样式):
   //kCCTransitionOrientationUpOver(下向上翻转)
   //kCCTransitionOrientationDownOver(上向下翻转)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值