Cocos2d-x学习笔记(五)实例——场景切换

时间:2023-02-07 20:13:05

1】首先设计场景需要许多的图片资源,往resource文件夹里添加资源文件:

Cocos2d-x学习笔记(五)实例——场景切换

2】新建Cocos2d-x工程时默认的是HelloWord场景,在此只做先显示布景层中相关精灵图片以及菜单图片的修改:

Cocos2d-x学习笔记(五)实例——场景切换

Cocos2d-x学习笔记(五)实例——场景切换

3】在刚刚的init()函数中有两个菜单回调函数,主要用于单击菜单项时切换场景:

Cocos2d-x学习笔记(五)实例——场景切换

4】接下来看看两个界面的布景,主要也是修改init()函数,登陆界面只是简单的加载一个精灵图片作为背景,注册界面上的布景通过时间调度实现了一个闪屏功能(颜色瞬变)

bool Denglu::init()里面的关键代码:

//添加标签

CCSize size = CCDirector::sharedDirector()->getWinSize();

CCLabelTTF* pLabel = CCLabelTTF::create("Congratulations, login successfully!""Arial", 24);

CC_BREAK_IF(! pLabel);

pLabel->setPosition(ccp(size.width / 2, size.height-50));

this->addChild(pLabel, 1);

//添加精灵

CCSprite* pSprite = CCSprite::create("Success.jpg");

CC_BREAK_IF(! pSprite);

pSprite->setPosition(ccp(size.width/2,size.height/2));

this->addChild(pSprite, 0);

bool Zhuce::init()里面的添加精灵、标签的代码:

Cocos2d-x学习笔记(五)实例——场景切换

bool Zhuce::init()里面的颜色布景、时间调度的代码:

Cocos2d-x学习笔记(五)实例——场景切换

NewBlend方法是Test实例里面的一个方法,直接拿来用:

void Zhuce::newBlend(float dt)

{

CCLayerColor *layer = (CCLayerColor*)getChildByTag(kTagLayer);

GLenum src;

GLenum dst;

if( layer->getBlendFunc().dst == GL_ZERO )

{

src = GL_ONE_MINUS_SRC_ALPHA;

dst = GL_RIGHT;

}

else

{

src = GL_ONE_MINUS_DST_COLOR;

dst = GL_ZERO;

}

ccBlendFunc bf = {src, dst};

layer->setBlendFunc( bf );

}

通过这次例子学到了很多有关场景、布景层、精灵、菜单、标签、场景切换动画等很多知识。

完整代码:http://download.csdn.net/detail/ll_gg_tt/5955163