zoukankan      html  css  js  c++  java
  • 我的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); 



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

  • 相关阅读:
    关于PowerShell调用Linq的一组实验
    PowerShell创建参考窗口
    Python切图脚本
    11->8
    用Python演奏音乐
    关于Haskell计算斐波那契数列的思考
    傅立叶变换与小波分析
    堆排序(python实现)
    二进制数据表示方式
    oracle数据插入/查询乱码
  • 原文地址:https://www.cnblogs.com/gongyan/p/4539409.html
Copyright © 2011-2022 走看看