标签:style blog http color 使用 os io for
原创文章,转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38730335
之前提到CCScene是场景,是整个游戏的舞台,通过查看源码我们不难发现CCScene也是CCNode的子节点,那么它也拥有我们上一节讲的CCNode的所有非private属性及方法。
CCScene的作用十为了联系所有的CCNode节点(包括CCLayer、CCSprite等)。
当清楚知道每个场景要显示的内容,那么定义出不同的CCNode,然后统一添加到CCScene中,执行CCDirector->runWithScene()就可以显示在屏幕上了。
class CC_DLL CCScene : public CCNode { public: CCScene(); virtual ~CCScene(); bool init(); static CCScene *create(void); }; CCScene::CCScene() { m_bIgnoreAnchorPointForPosition = true; setAnchorPoint(ccp(0.5f, 0.5f)); } CCScene::~CCScene() { } bool CCScene::init() { bool bRet = false; do { CCDirector * pDirector; CC_BREAK_IF( ! (pDirector = CCDirector::sharedDirector()) ); this->setContentSize(pDirector->getWinSize()); // success bRet = true; } while (0); return bRet; } CCScene *CCScene::create() { CCScene *pRet = new CCScene(); if (pRet && pRet->init()) { pRet->autorelease(); return pRet; } else { CC_SAFE_DELETE(pRet); return NULL; } }
class CC_DLL CCTransitionScene : public CCScene { protected: CCScene * m_pInScene; CCScene * m_pOutScene; float m_fDuration; bool m_bIsInSceneOnTop; bool m_bIsSendCleanupToScene; public: CCTransitionScene(); virtual ~CCTransitionScene(); virtual void draw(); virtual void onEnter(); virtual void onExit(); virtual void cleanup(); static CCTransitionScene * create(float t, CCScene *scene); // 该方法初始化一个场景过渡效果,并指定过渡时间和即将过渡的场景 virtual bool initWithDuration(float t, CCScene* scene); // 该方法在过渡效果结束时会调用 void finish(void); // 部分过渡效果会使用该方法来隐藏更外面的场景 void hideOutShowIn(void);protected: virtual void sceneOrder();private: void setNewScene(float dt);};
CCTransitionFade * transitionScene = CCTransitionFade::initWithDuration(1, gameScene); CCDirector::sharedDirector()->replaceScene(transitionScene);
// 涡轮效果 class CC_DLL CCTransitionRotoZoom : public CCTransitionScene // 跳动进入 class CC_DLL CCTransitionJumpZoom : public CCTransitionScene // 从左/右/上/下侧进入 class CC_DLL CCTransitionMoveInL : public CCTransitionScene, public CCTransitionEaseScene class CC_DLL CCTransitionMoveInR : public CCTransitionMoveInL class CC_DLL CCTransitionMoveInT : public CCTransitionMoveInL class CC_DLL CCTransitionMoveInB : public CCTransitionMoveInL // 从左/右/上/下侧滑入 class CC_DLL CCTransitionSlideInL : public CCTransitionScene, public CCTransitionEaseScene class CC_DLL CCTransitionSlideInR : public CCTransitionSlideInL class CC_DLL CCTransitionSlideInT : public CCTransitionSlideInL class CC_DLL CCTransitionSlideInB : public CCTransitionSlideInL // 交替进入 class CC_DLL CCTransitionShrinkGrow : public CCTransitionScene , public CCTransitionEaseScene // 左右翻转进入 class CC_DLL CCTransitionFlipX : public CCTransitionSceneOriented // 上下翻转进入 class CC_DLL CCTransitionFlipY : public CCTransitionSceneOriented // 左上右下轴翻入 class CC_DLL CCTransitionFlipAngular : public CCTransitionSceneOriented // 左右放大缩小效果翻入 class CC_DLL CCTransitionZoomFlipX : public CCTransitionSceneOriented // 上下放大缩小效果翻入 class CC_DLL CCTransitionZoomFlipY : public CCTransitionSceneOriented // 左上右下放大缩小效果翻入 class CC_DLL CCTransitionZoomFlipAngular : public CCTransitionSceneOriented // 相变暗,再渐入 class CC_DLL CCTransitionFade : public CCTransitionScene // 渐变进入 class CC_DLL CCTransitionCrossFade : public CCTransitionScene // 小方格消失进入 class CC_DLL CCTransitionTurnOffTiles : public CCTransitionScene ,public CCTransitionEaseScene // 竖条切换进入 class CC_DLL CCTransitionSplitCols : public CCTransitionScene , public CCTransitionEaseScene // 横条切换进入 class CC_DLL CCTransitionSplitRows : public CCTransitionSplitCols // 小方格右上角显示进入 class CC_DLL CCTransitionFadeTR : public CCTransitionScene , public CCTransitionEaseScene // 小方格左下角显示进入 class CC_DLL CCTransitionFadeBL : public CCTransitionFadeTR // 横条向上显示进入 class CC_DLL CCTransitionFadeUp : public CCTransitionFadeTR // 横条向下显示进入 class CC_DLL CCTransitionFadeDown : public CCTransitionFadeTR
Cocos2d-x学习笔记(四)CCScene分析,布布扣,bubuko.com
标签:style blog http color 使用 os io for
原文地址:http://blog.csdn.net/sfh366958228/article/details/38730335