cocos2dx CCTransitionScene框架分析
来源:互联网 发布:linux如何查看登录情况 编辑:程序博客网 时间:2024/06/03 10:54
1、base class : CCScene;
2、核心属性protected:
CCScene * m_pInScene; //新的场景 CCScene * m_pOutScene; //被替换的场景 float m_fDuration; //动画间隔
3、核心方法:
/** initializes a transition with duration and incoming scene */ virtual bool initWithDuration(float t,CCScene* scene); /** called after the transition finishes */ void finish(void);private: void setNewScene(float dt);4、如何使用(用它的一个子类CCTransitionRotoZoom来举例):一般是创建子类的实例,需要把新的场景和动画间隔通过构造方法传进来,如:static CCTransitionRotoZoom* create(float t, CCScene* scene);子类在onEnter()方法中实现具体动画效果,如:void CCTransitionRotoZoom:: onEnter(){ CCTransitionScene::onEnter(); m_pInScene->setScale(0.001f); m_pOutScene->setScale(1.0f); m_pInScene->setAnchorPoint(ccp(0.5f, 0.5f)); m_pOutScene->setAnchorPoint(ccp(0.5f, 0.5f)); CCActionInterval *rotozoom = (CCActionInterval*)(CCSequence::create ( CCSpawn::create ( CCScaleBy::create(m_fDuration/2, 0.001f), CCRotateBy::create(m_fDuration/2, 360 * 2), NULL ), CCDelayTime::create(m_fDuration/2), NULL )); m_pOutScene->runAction(rotozoom); m_pInScene->runAction ( CCSequence::create ( rotozoom->reverse(), CCCallFunc::create(this, callfunc_selector(CCTransitionScene::finish)), //重点 NULL ) );}//下面假设pScene为CCTransitionRotoZoom实例,在创建时通过m_pOutScene = CCDirector::sharedDirector()->getRunningScene();可以获取到被替换场景了,CCDirector::sharedDirector()->replaceScene(pScene);当CCTransitionRotoZoom::onEnter()播放切换动画后,调用CCTransitionScene:Finish()设置新旧场景的状态,比如可视状态等,接着调用CCTransitionScene:setNewScene()是导演设置新的场景为当前运行的场景,代码如下:void CCTransitionScene::setNewScene(float dt){ CC_UNUSED_PARAM(dt); this->unschedule(schedule_selector(CCTransitionScene::setNewScene)); // Before replacing, save the "send cleanup to scene" CCDirector *director = CCDirector::sharedDirector(); m_bIsSendCleanupToScene = director->isSendCleanupToScene(); director->replaceScene(m_pInScene); // issue #267 m_pOutScene->setVisible(true);}基本上整个流程就是这样。
0 0
- cocos2dx CCTransitionScene框架分析
- cocos2dx动作框架分析
- [cocos2dx]TestCpp框架源码分析
- cocos2dx 框架
- Cocos2dx 框架
- CCTransitionScene Class Reference
- cocos2d-replace动画-CCTransitionScene
- IOS CCTransitionScene场景切换动画
- cocos2dx功能框架概述
- [cocos2dx]cocos2dx-lua中的框架MVC
- [cocos2dx]cocos2dx-lua中的框架MVC
- cocos2dx kazmath 分析
- cocos2dx kazmath 分析
- cocos2dx CCScrollView 源码分析
- cocos2dx HelloWorld范例分析。
- cocos2dx HelloWorld代码分析
- cocos2dx 执行流程分析
- cocos2dx 透视设置分析
- JQuery Kendo UI运用技巧总结
- ZK编程 - 创建节点+watcher
- POJ 1321 棋盘问题
- Android中的五大存储
- 在访问者模式中使用反射
- cocos2dx CCTransitionScene框架分析
- ios 中计时器的使用方式
- 迭代器模式
- 达梦数据库(7.0)(Windows)(DM7-->DM7)数据迁移过程详解
- iOS —— 通知、监测KVO
- Quartz入门实例11-Quartz的远程方法调用
- Bugzilla使用手册及解决方案
- 第四周工作报告
- 并查集(Union-Find)算法介绍