如何从我在cocos2d中为其他场景传递的场景获取价值?

时间:2013-11-26 05:19:00

标签: android c++ cocos2d-x

我有PlayScene.cpp 在这个场景中,我有这样的传递值:                CCDirector :: sharedDirector() - > replaceScene(            CCTransitionPageTurn :: create(1.0f,ZeroScene :: scene(3),true));

现在值为3(ZeroScene :: scene(3))并且能够在ZeroScene中获取此值

CCScene * ZeroScene :: scene(int pups){     CCLog(“选择的小狗是:%i”,小狗);

    // 'scene' is an autorelease object
CCScene *scene = CCScene::create();

// 'layer' is an autorelease object
ZeroScene *layer = ZeroScene::create();

// add layer as a child to scene
scene->addChild(layer);

// return the scene
return scene;

}

现在我想在ZeroScene.cpp类中使用这个int pups值。 请帮帮我一个人。 提前谢谢。

1 个答案:

答案 0 :(得分:3)

你必须编写自己的创建函数,它将采用这个参数。这是一个例子:

在* .h文件中添加:

static ZeroScene* create(int pups);

在你的* .cpp:

ZeroScene* ZeroScene::create(int pups) {

    ZeroScene *zs = new ZeroScene();

    if (zs->init()) {
        zs->autorelease();
        //here write your code to initialize everything
    } else
        zs = NULL;

    return zs;

}

然后您只需更改scene()方法中的创建行。我在这里写的所有内容都是基本的cocos2d-x初始化。