展会信息港展会大全

Cocos2d-x3.2 LayerMultiplex使用说明
来源:互联网   发布日期:2015-09-27 15:30:59   浏览:2217次  

导读: LayerMultiplex是层的控制器类 使用如下 LayerMultiplexTest.h // // LayerMultiplexTest.h // cpp4 // // Cre...

LayerMultiplex是层的控制器类

使用如下

LayerMultiplexTest.h

//

//LayerMultiplexTest.h

//cpp4

//

//Created by 杜甲 on 10/13/14.

//

//

#ifndef __cpp4__LayerMultiplexTest__

#define __cpp4__LayerMultiplexTest__

#include "cocos2d.h"

USING_NS_CC;

class LayerMultiplexTest : public Layer

{

public:

virtual bool init();

// there's no 'id' in cpp, so we recommend returning the class instance pointer

static cocos2d::Scene* scene();

// implement the "static node()" method manually

CREATE_FUNC(LayerMultiplexTest);

};

class TestMainLayer : public LayerColor

{

public:

virtual bool init();

CREATE_FUNC(TestMainLayer);

private:

void menuCallback1(cocos2d::Ref *sender);

void menuCallback2(cocos2d::Ref *sender);

};

class TestLayer1 : public LayerColor

{

public:

virtual bool init();

CREATE_FUNC(TestLayer1);

void menuCallback1(cocos2d::Ref *sender);

};

class TestLayer2 : public LayerColor

{

public:

virtual bool init();

CREATE_FUNC(TestLayer2);

void menuCallback1(cocos2d::Ref *sender);

};

#endif /* defined(__cpp4__LayerMultiplexTest__) */

LayerMultiplexTest.cpp

//

//LayerMultiplexTest.cpp

//cpp4

//

//Created by 杜甲 on 10/13/14.

//

//

#include "LayerMultiplexTest.h"

Scene* LayerMultiplexTest::scene()

{

// 'scene' is an autorelease object

auto scene = Scene::create();

// 'layer' is an autorelease object

LayerMultiplexTest *layer = LayerMultiplexTest::create();

// add layer as a child to scene

scene->addChild(layer);

// return the scene

return scene;

}

bool LayerMultiplexTest::init()

{

bool bRet = false;

do {

CC_BREAK_IF(!Layer::init());

auto mainLayer = TestMainLayer::create();

auto layer1 = TestLayer1::create();

auto layer2 = TestLayer2::create();

//将层放入LayerMultiplex中

auto layerMutiplex = LayerMultiplex::create(mainLayer,layer1,layer2,nullptr);

addChild(layerMutiplex,0);

bRet = true;

} while (0);

return bRet;

}

bool TestMainLayer::init()

{

bool bRet = false;

do {

CC_BREAK_IF(!LayerColor::init());

auto winSize = Director::getInstance()->getWinSize();

auto label1 = Label::createWithBMFont("bitmapFontTest3.fnt", "TestLayer 1");

auto item1 = MenuItemLabel::create(label1, CC_CALLBACK_1(TestMainLayer::menuCallback1, this));

auto label2 = Label::createWithBMFont("bitmapFontTest3.fnt", "TestLayer 2");

auto item2 = MenuItemLabel::create(label2, CC_CALLBACK_1(TestMainLayer::menuCallback2, this));

auto menu = Menu::create(item1,item2, NULL);

menu->alignItemsVertically();

menu->setPosition(winSize / 2);

addChild(menu);

bRet = true;

} while (0);

return bRet;

}

void TestMainLayer::menuCallback1(cocos2d::Ref *sender)

{

static_cast(_parent)->switchTo(1);

}

void TestMainLayer::menuCallback2(cocos2d::Ref *sender)

{

static_cast(_parent)->switchTo(2);

}

bool TestLayer1::init()

{

bool bRet = false;

do {

CC_BREAK_IF(!LayerColor::initWithColor(Color4B(100, 200, 200, 100)));

auto winSize = Director::getInstance()->getWinSize();

auto label1 = Label::createWithBMFont("bitmapFontTest3.fnt", "MainLayer");

auto item1 = MenuItemLabel::create(label1, CC_CALLBACK_1(TestLayer1::menuCallback1, this));

auto menu = Menu::create(item1, NULL);

menu->alignItemsVertically();

menu->setPosition(winSize / 2);

addChild(menu);

bRet = true;

} while (0);

return bRet;

}

void TestLayer1::menuCallback1(cocos2d::Ref *sender)

{

//返回方法

static_cast(_parent)->switchTo(0);

}

bool TestLayer2::init()

{

bool bRet = false;

do {

CC_BREAK_IF(!LayerColor::initWithColor(Color4B(100, 100, 200, 100)));

auto winSize = Director::getInstance()->getWinSize();

auto label1 = Label::createWithBMFont("bitmapFontTest3.fnt", "MainLayer");

auto item1 = MenuItemLabel::create(label1, CC_CALLBACK_1(TestLayer2::menuCallback1, this));

auto menu = Menu::create(item1, NULL);

menu->alignItemsVertically();

menu->setPosition(winSize / 2);

addChild(menu);

bRet = true;

} while (0);

return bRet;

}

void TestLayer2::menuCallback1(cocos2d::Ref *sender)

{

static_cast(_parent)->switchTo(0);

}

代码下载:http://download.csdn.net/detail/qqmcy/8031733

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港