CCTransitionScene* createTransition(int nIndex, float t, CCScene* s)
{
// fix bug #486, without setDepthTest(false), FlipX,Y will flickers
CCDirector::sharedDirector()->setDepthTest(false);
switch(nIndex)
{
case 0: return CCTransitionJumpZoom::create(t, s);
case 1: return CCTransitionProgressRadialCCW::create(t, s);
case 2: return CCTransitionProgressRadialCW::create(t, s);
case 3: return CCTransitionProgressHorizontal::create(t, s);
case 4: return CCTransitionProgressVertical::create(t, s);
case 5: return CCTransitionProgressInOut::create(t, s);
case 6: return CCTransitionProgressOutIn::create(t, s);
case 7: return CCTransitionCrossFade::create(t,s);
case 8: return PageTransitionForward::create(t, s);
case 9: return PageTransitionBackward::create(t, s);
case 10: return CCTransitionFadeTR::create(t, s);
case 11: return CCTransitionFadeBL::create(t, s);
case 12: return CCTransitionFadeUp::create(t, s);
case 13: return CCTransitionFadeDown::create(t, s);
case 14: return CCTransitionTurnOffTiles::create(t, s);
case 15: return CCTransitionSplitRows::create(t, s);
case 16: return CCTransitionSplitCols::create(t, s);
case 17: return CCTransitionFade::create(t, s);
case 18: return FadeWhiteTransition::create(t, s);
case 19: return FlipXLeftOver::create(t, s);
case 20: return FlipXRightOver::create(t, s);
case 21: return FlipYUpOver::create(t, s);
case 22: return FlipYDownOver::create(t, s);
case 23: return FlipAngularLeftOver::create(t, s);
case 24: return FlipAngularRightOver::create(t, s);
case 25: return ZoomFlipXLeftOver::create(t, s);
case 26: return ZoomFlipXRightOver::create(t, s);
case 27: return ZoomFlipYUpOver::create(t, s);
case 28: return ZoomFlipYDownOver::create(t, s);
case 29: return ZoomFlipAngularLeftOver::create(t, s);
case 30: return ZoomFlipAngularRightOver::create(t, s);
case 31: return CCTransitionShrinkGrow::create(t, s);
case 32: return CCTransitionRotoZoom::create(t, s);
case 33: return CCTransitionMoveInL::create(t, s);
case 34: return CCTransitionMoveInR::create(t, s);
case 35: return CCTransitionMoveInT::create(t, s);
case 36: return CCTransitionMoveInB::create(t, s);
case 37: return CCTransitionSlideInL::create(t, s);
case 38: return CCTransitionSlideInR::create(t, s);
case 39: return CCTransitionSlideInT::create(t, s);
case 40: return CCTransitionSlideInB::create(t, s);
default: break;
}
return NULL;
}
//调用
void TestLayer1::restartCallback(CCObject* pSender)
{
//TransitionsTestScene是CCScene的子类
CCScene* s = new TransitionsTestScene();
CCLayer* pLayer = new TestLayer2();
s->addChild(pLayer);
//这里是使用
CCScene* pScene = createTransition(s_nSceneIdx, TRANSITION_DURATION, s);
s->release();
pLayer->release();
if (pScene)
{
CCDirector::sharedDirector()->replaceScene(pScene);
}
}