cocos2d-x 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


参考:http://blog.csdn.net/xiaominghimi/article/details/6651281
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值