ejoy2d github中如何切换场景

cocos2d-x&场景切换过程中的loading制作
面说一下解决方案,我其余的奇思妙想和尝试就不和大家分享了:
大家先看看CCDirector的源码,其中有个m_pNotificationNode属性,这个是独立于scene之外的:
// Draw the Scene
void CCDirector::drawScene(void)
// calculate "global" dt
calculateDeltaTime();
//tick before glClear: issue #533
if (! m_bPaused)
m_pScheduler-&update(m_fDeltaTime);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
if (m_pNextScene)
setNextScene();
kmGLPushMatrix();
// draw the scene
if (m_pRunningScene)
m_pRunningScene-&visit();
// draw the notifications node
if (m_pNotificationNode)
m_pNotificationNode-&visit();
if (m_bDisplayStats)
showStats();
kmGLPopMatrix();
m_uTotalFrames++;
// swap buffers
if (m_pobOpenGLView)
m_pobOpenGLView-&swapBuffers();
if (m_bDisplayStats)
calculateMPF();
从源码可知,先访问了m_pRunningScene,然后又访问了m_pNotificationNode,这两个是没有什么影响的。。。
所以,我们在按钮点击的时候可以这么操作:
CCLayerColor *layer = CCLayerColor::create(ccc4(255,0,0,255), 720, 1280);//推荐使用屏蔽层
CCDirector::sharedDirector()-&setNotificationNode(layer);
CCDirector::sharedDirector()-&drawScene();
想要什么loading界面,你就加什么node,ok?好,这样子我们就成功加载了loading界面,但是记得要在下一个场景的init、onNodeLoaded、onEnter或者是onEnterTransitionDidFinish处理加载的这个node,处理如下:
CCDirector::sharedDirector()-&setNotificationNode(NULL);
友好提醒:加载的node,推荐使用屏蔽层,避免一些点击操作什么的,关于屏蔽层,大家可以参考此文:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!

我要回帖

更多关于 unity3d如何切换场景 的文章

 

随机推荐