小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man@H_301_2@
Cocos2d-x提供了很多场景间切换的效果,可以方便大家使用(很多是在@H_301_2@Kjava@H_301_2@时代都需要程序员自己来实现的效果)。@H_301_2@
1.使用方法:
正常的无过渡场景的如果尚未建立场景(即游戏中的第一个场景),就是用pDirector->runWithScene(pScene);即可以使用相应场景,如果是替换场景,则使用CCDirector::sharedDirector()->replaceScene(this);替换相应的场景即可,而如果要使用场景间的切换效果来切换场景,则需要使用相应的切换方法即transitionWithDuration(当然不同效果的使用方法略有不同)生成相应场景,然后再通过CCDirector::sharedDirector()->replaceScene(this)来启动场景,也就是说这个给这个场景加了一个外包装,然后再启动,那么,这个场景就不是直接显示了,而是在场景的效果使用完了以后进入场景,起到过渡的效果。
一般此函数有两个参数,第一个是特效的切换时间,直接生成一个CCTime@H_301_2@即可,例子中设定的时间是@H_301_2@1.2s@H_301_2@,对于很多场景的显示都很舒服,第二个是要进入的场景,有的会有第三个参数,会在下面介绍@H_301_2@
CCTransitionJumpZoom::transitionWithDuration(t,s);//跳跃式,本场景先会缩小,然后跳跃进来@H_301_2@
CCTransitionFade::transitionWithDuration(t,s);//淡出淡入,原场景淡出,新场景淡入@H_301_2@
如果上一个的函数,带@H_301_2@3@H_301_2@个参数,则第三个参数就是淡出淡入的颜色@H_301_2@
CCTransitionFlipX::transitionWithDuration(t,kOrientationLeftOver);//x轴左翻@H_301_2@
轴右翻@H_301_2@
CCTransitionFlipY::transitionWithDuration(t,kOrientationUpOver);//y轴上翻@H_301_2@
轴下翻@H_301_2@
CCTransitionFlipAngular::transitionWithDuration(t,kOrientationLeftOver);//有角度转的左翻@H_301_2@
有角度转的右翻@H_301_2@
CCTransitionZoomFlipX::transitionWithDuration(t,kOrientationLeftOver);//带缩放效果@H_301_2@x@H_301_2@轴左翻@H_301_2@
带缩放效果@H_301_2@x@H_301_2@轴右翻@H_301_2@
CCTransitionZoomFlipY::transitionWithDuration(t,kOrientationUpOver);//带缩放效果@H_301_2@y@H_301_2@轴上翻@H_301_2@
带缩放效果@H_301_2@y@H_301_2@轴下翻@H_301_2@
CCTransitionZoomFlipAngular::transitionWithDuration(t,kOrientationLeftOver);//带缩放效果@H_301_2@/@H_301_2@有角度转的左翻@H_301_2@
CCTransitionShrinkGrow::transitionWithDuration(t,s);//交错换@H_301_2@
CCTransitionRotoZoom::transitionWithDuration(t,s);//转角换@H_301_2@
CCTransitionMoveInL::transitionWithDuration(t,s);//新场景从左移入覆盖@H_301_2@
CCTransitionMoveInR::transitionWithDuration(t,s);//新场景从右移入覆盖@H_301_2@
CCTransitionMoveInT::transitionWithDuration(t,s);//新场景从上移入覆盖@H_301_2@
CCTransitionMoveInB::transitionWithDuration(t,s);//新场景从下移入覆盖@H_301_2@
CCTransitionSlideInL::transitionWithDuration(t,s);//场景从左移入推出原场景@H_301_2@
CCTransitionSlideInR::transitionWithDuration(t,s);//场景从右移入推出原场景@H_301_2@
CCTransitionSlideInT::transitionWithDuration(t,s);//场景从上移入推出原场景@H_301_2@
CCTransitionSlideInB::transitionWithDuration(t,s);//场景从下移入推出原场景@H_301_2@
以下三个需要检测opengl@H_301_2@版本是否支持@H_301_2@CCConfiguration::sharedConfiguration()->getGlesVersion()<=GLES_VER_1_0如果为真则为不支持
CCTransitionCrossFade::transitionWithDuration(t,s);//淡出淡入交叉,同时进行@H_301_2@
CCTransitionRadialCCW::transitionWithDuration(t,s);//顺@H_301_2@时针切入@H_301_2@
CCTransitionRadialCW::transitionWithDuration(t,s);//逆@H_301_2@时针切入@H_301_2@
以下两个需要先设置摄像机,使用CCDirector::sharedDirector()->setDepthTest(true);
CCTransitionPageTurn::transitionWithDuration(t,false);//翻页,前翻@H_301_2@
CCTransitionFadeTR::transitionWithDuration(t,s);//向右上波浪@H_301_2@
CCTransitionFadeBL::transitionWithDuration(t,s);//向左下波浪@H_301_2@
CCTransitionFadeUp::transitionWithDuration(t,s);//向上百叶窗@H_301_2@
CCTransitionFadeDown::transitionWithDuration(t,s);//向下百叶窗@H_301_2@
CCTransitionTurnOffTiles::transitionWithDuration(t,s);//随机小方块@H_301_2@
CCTransitionSplitRows::transitionWithDuration(t,s);//按行切@H_301_2@
CCTransitionSplitCols::transitionWithDuration(t,s);//按列切@H_301_2@
刚开始研究此引擎,如有错误之处,希望大家多多指正