【关于多层布景】
在游戏开发中,一般会把游戏分为两部分:一部分是游戏界面部分,也就是常说得UI部分;另一部分就是游戏本身部分。有时UI有很多页面,在页面中用的图也不是很多,不需要进行场景切换,只需把不同页面做成不同的布景,然后切换布景层。那么就需要一个“管理者”来管理这些界面,这时候就要使用CCLayerMultiplex(多层布景)类。在很多游戏中都需要在不同的界面中使用相同的几个变量,如果不这样做就需要做大量的保存工作。
【关于这个实例】
在布景方面没有做太多的修改,其中的几个场景与上一个例子场景切换类似
【1】HelloWorld主场景只进行菜单项图片的更改
CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
"denglu2.png",
"denglu1.png",
this,
menu_selector(HelloWorld::menuCloseCallback));
CC_BREAK_IF(! pCloseItem);
【2】新建一个场景类Scenes,主要用于装载布景层、控制布景层的内部切换
其类申明如下:
class Scenes : public cocos2d::CCScene
{
public:
void runThisTest();
CREATE_FUNC(Scenes);
};
runThisTest方法:
【3】在菜单项消息响应函数里运行此场景(单击或触摸菜单项切换场景)
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
// "close" menu item clicked
Scenes* scene = Scenes::create();
scene->runThisTest();
}
【4】对于布景方面的东西不在赘述,由于默认显示登录布景,查看其菜单项
void Denglu::menuDengluCallback(CCObject* pSender)
{
((CCLayerMultiplex*)m_pParent)->switchTo(1);
}
其中CCLayerMultiplex类的switchTo方法主要用于切换布景层(序号从0开始)
【总结】关于多层布景类的使用不是很难,还算比较容易理解的,附上简单的运行效果: