标签: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