Cocos2d-x3.2 LayerMultiplex使用说明

Cocos2d-x3.2 LayerMultiplex使用说明,第1张

概述LayerMultiplex是层的控制器类 使用如下 LayerMultiplexTest.h //// LayerMultiplexTest.h// cpp4//// Created by 杜甲 on 10/13/14.////#ifndef __cpp4__LayerMultiplexTest__#define __cpp4__LayerMultiplexTest__

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<LayerMultiplex *>(_parent)->switchTo(1);    }voID TestMainLayer::menuCallback2(cocos2d::Ref *sender){    static_cast<LayerMultiplex *>(_parent)->switchTo(2);}bool TestLayer1::init(){    bool bRet = false;    do {        CC_BREAK_IF(!Layercolor::initWithcolor(color4B(100,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<LayerMultiplex *>(_parent)->switchTo(0);    }bool TestLayer2::init(){    bool bRet = false;    do {        CC_BREAK_IF(!Layercolor::initWithcolor(color4B(100,100,100)));      auto winSize = Director::getInstance()->getWinSize();        auto label1 = Label::createWithBMFont("bitmapFontTest3.fnt",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<LayerMultiplex *>(_parent)->switchTo(0);    }

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

以上是内存溢出为你收集整理的Cocos2d-x3.2 LayerMultiplex使用说明全部内容,希望文章能够帮你解决Cocos2d-x3.2 LayerMultiplex使用说明所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1003263.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存