我的Cocos2d-x学习笔记(四)场景转换特效

     首先看一下之前介绍过切换场景的代码:

CCScene* pScene = TestLayer::scene();
CCDirector::sharedDirector()->pushScene(pScene);
CCDirector::sharedDirector()->popScene();
CCDirector::sharedDirector()->replaceScene(pScene);
    用以上切换场景的方法只会进行普通的切换场景,一闪而过,立刻变成第二个场景。而Cocos2d-x中为我们提供了一些场景切换的特效,实现各种动画切换的效果。在利用特效的时候,内存中会留有两个场景类的对象,占用内存空间是正常运行的两倍。

    这些特效是通过特效类CCTransitionScene来实现的,派生关系如下图所示:


     如何使用场景特效呢?首先创建一个我们想要切换到场景,然后把待切换到的场景当作参数创建一个我们想使用的特效,之后使用场景特效作为参数传入CCDirector的方法中进行场景切换。

    下面举几个例子:

1、CCTransitionCrossFade

CCTransitionCrossFade:效果:慢慢淡化到另一个场景。

CCTransitionCrossFade* CCTransitionCrossFade::create(float duration,CCScene* scene):第一个参数为过度动作的时间,第二个参数为切换到目标场景的对象。

	CCScene* scene = TestLayer::scene(); 
	CCTransitionScene* effect = CCTransitionCrossFade::create(1.5, scene);
	CCDirector::sharedDirector()->replaceScene(effect);
2、CCTransitionFade

CCTransitionFade:效果:本场景变暗消失后另一场景慢慢出现。

CCTransitionFade* CCTransitionFade::create(float duration,CCScene* scene):第一个参数为过度动作的时间,第二个参数为切换到目标场景的对象。

	CCScene* scene = TestLayer::scene(); 
	CCTransitionScene* effect = CCTransitionFade::create(1.5, scene);
	CCDirector::sharedDirector()->replaceScene(effect); 
3、CCTransitionFadeTR

CCTransitionFadeTR:效果:本场景中从中间到四个角处消失,出现另一场景。

CCTransitionFadeTR* CCTransitionFadeTR::create(float t, CCScene* scene):第一个参数为过度动作的时间,第二个参数为切换到目标场景的对象。

	CCScene* scene = TestLayer::scene(); 
	CCTransitionScene* effect = CCTransitionFadeTR::create(1.5, scene);
	CCDirector::sharedDirector()->replaceScene(effect); 



其实还有许多场景特效,等慢慢总结

原文地址:https://www.cnblogs.com/gongyan/p/4539409.html