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



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

  • 相关阅读:
    Multi-Sensor, Multi- Network Positioning
    基于智能手机的3D地图导航
    2010上海世博会三维导航地图
    hdu 5452(树链刨分)
    蓝桥杯危险系数
    蓝桥杯横向打印二叉树(中序+先序遍历)
    蓝桥杯幸运数(线段树)
    hdu 5185(DP)
    2014江西理工大学C语言程序设计竞赛高级组题解
    uva 12730(期望经典)
  • 原文地址:https://www.cnblogs.com/gongyan/p/4539409.html
Copyright © 2011-2022 走看看