cocos2dx scene切换动画
#ifndef _EFFECT_ #define _EFFECT_ #include "cocos2d.h" using namespace cocos2d; enum SceneTransitionEffect { NORMAL, GRID, //部落格 SWITCH, //近远-远近----- MOVE_LEFT, //另一个layout左侧进入(视觉感觉是屏幕右移) MOVE_RIGHT, //另一个layout右侧进入(视觉感觉是屏幕左移) MOVE_UP, //另一个layout上侧进入(视觉感觉是屏幕下移) MOVE_DOWN, //另一个layout下侧进入(视觉感觉是屏幕上移) MIDDLE_UP, //当前屏幕被分为3列,两则下移,中间上移 MIDDLE_RIGHT, //当前屏幕被分为3列,两则左移,中间右移 FAN_SWITCH, //扇形转换 FLAT_SWITCH, //平面旋转 NEAR_FAR_JUMP, //近-远-跳动 FLIP_X_3D, //3D x轴反转 FLIP_Y_3D, //3D y轴反转 FLIP_XY_3D, //3D x,y轴反转 FLIP_X, //x轴反转 FLIP_Y, //y轴反转 FLIP_XY, //x,y轴反转 IN_LEFT, //另外一个layout左侧进入覆盖当前layout IN_RIGHT, //另外一个layout右侧进入覆盖当前layout IN_TOP, //另外一个layout上面进入覆盖当前layout IN_BOTTOM, //另外一个layout下面进入覆盖当前layout FADE, //渐变(默认无颜色,可以附带颜色) FADE_WHITE, //渐变(默认无颜色,可以附带颜色) CROSS_FADE, //另外一个直接渐变覆盖当前layout FADE_TR, //移动(方格状)部落格,从左下往右上 FADE_BL, //移动(方格状)部落格,从右上往左下 FADE_UP, //移动(长矩形,宽度是屏幕宽)部落格,从下往上 FADE_DOWN, //移动(长矩形,宽度是屏幕宽)部落格,从上往下 }; static void SceneEffect(CCScene* scene,SceneTransitionEffect type) { CCDirector* director=CCDirector::sharedDirector(); // type=FADE_DOWN; switch (type) { case NORMAL: director->replaceScene(scene); break; case GRID: director->replaceScene(CCTransitionTurnOffTiles::transitionWithDuration(1.2f,scene)); break; case SWITCH: director->replaceScene(CCTransitionShrinkGrow::transitionWithDuration(1.2f,scene)); break; case MOVE_LEFT: director->replaceScene(CCTransitionSlideInR::transitionWithDuration(1.2f,scene)); break; case MOVE_RIGHT: director->replaceScene(CCTransitionSlideInL::transitionWithDuration(1.2f,scene)); break; case MOVE_UP: director->replaceScene(CCTransitionSlideInB::transitionWithDuration(1.2f,scene)); break; case MOVE_DOWN: director->replaceScene(CCTransitionSlideInT::transitionWithDuration(1.2f,scene)); break; case MIDDLE_UP: director->replaceScene(CCTransitionSplitCols::transitionWithDuration(1.2f,scene)); break; case MIDDLE_RIGHT: director->replaceScene(CCTransitionSplitRows::transitionWithDuration(1.2f,scene)); break; case FAN_SWITCH: director->replaceScene(CCTransitionRadialCW::transitionWithDuration(1.2f,scene)); break; case FLAT_SWITCH: director->replaceScene(CCTransitionRotoZoom::transitionWithDuration(1.2f,scene)); break; case NEAR_FAR_JUMP: director->replaceScene(CCTransitionJumpZoom::transitionWithDuration(1.2f,scene)); break; case FLIP_X_3D: director->replaceScene(CCTransitionZoomFlipX::transitionWithDuration(1.2f,scene)); break; case FLIP_Y_3D: director->replaceScene(CCTransitionZoomFlipY::transitionWithDuration(1.2f,scene)); break; case FLIP_XY_3D: director->replaceScene(CCTransitionZoomFlipAngular::transitionWithDuration(1.2f,scene)); break; case FLIP_X: director->replaceScene(CCTransitionFlipX::transitionWithDuration(1.2f,scene)); break; case FLIP_Y: director->replaceScene(CCTransitionFlipY::transitionWithDuration(1.2f,scene)); break; case FLIP_XY: director->replaceScene(CCTransitionFlipAngular::transitionWithDuration(1.2f,scene)); break; case IN_LEFT: director->replaceScene(CCTransitionMoveInL::transitionWithDuration(1.2f,scene)); break; case IN_RIGHT: director->replaceScene(CCTransitionMoveInR::transitionWithDuration(1.2f,scene)); break; case IN_TOP: director->replaceScene(CCTransitionMoveInT::transitionWithDuration(1.2f,scene)); break; case IN_BOTTOM: director->replaceScene(CCTransitionMoveInB::transitionWithDuration(1.2f,scene)); break; case FADE: director->replaceScene(CCTransitionFade::transitionWithDuration(1.2f,scene,ccc3(0,0,0)));//ccBlack break; case FADE_WHITE: director->replaceScene(CCTransitionFade::transitionWithDuration(1.2f,scene,ccc3(255,255,255)));//ccWHITE break; case CROSS_FADE: director->replaceScene(CCTransitionCrossFade::transitionWithDuration(1.2f,scene)); break; case FADE_TR: director->replaceScene(CCTransitionFadeBL::transitionWithDuration(1.2f,scene)); break; case FADE_BL: director->replaceScene(CCTransitionFadeTR::transitionWithDuration(1.2f,scene)); break; case FADE_UP: director->replaceScene(CCTransitionFadeDown::transitionWithDuration(1.2f,scene)); break; case FADE_DOWN: director->replaceScene(CCTransitionFadeUp::transitionWithDuration(1.2f,scene)); break; default: break; } } #endif