我的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); 



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

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...