• 关于Cocos2d-x中两个场景之间参数的传递


    两个场景之间,有的时候要进行参数传递,如果想通过实例化出一个场景,从而得到属性和方法是不对的想法

    你有两个场景,第一场景是用户登录界面,第二场景则是你登录后的界面,你如何将用户登录的值传到第二个场景呢

    两种方法(有两个场景 HelloWorld, LotteryScene)

    一:1)在LotteryScene.h 中加入成员变量,如 Map<std::string, Node*> map2;(我想说的是任何数据类型都可以,所以这里用Map数据类型来更加有说服力)

            并在LotteryScene.cpp的init()方法里,map2做初始化;//可以省略这句

             2)在HelloWorld转到LotteryScene时,调用一下一下方法,一定要记得把要传递的变量的类型设置为public

         auto scene = Scene::create();
            LotteryScene *layer = LotteryScene::create();
            layer->map2 = map1;
            scene->addChild(layer);//类似firstScene中的scene()方法  
            Director::getInstance()->replaceScene(TransitionFade::create(1, scene));

        3)在LotteryScene.cpp中就可以验证map2的值

    老版本的转换,还没有转换为新版本,firstScene转到secondScene的参数传递

    二:1)在secondScene.h中添加一个静态参数:static int sceneNum;

                  在secondScene.cpp中的方法外面写一个全局变量

                       int TableViewLayer::sceneNum = 0;

               2)在firstScene.h中类外写 class secondScene;并在属性中写secondScene* secondLayer;

            3)在firstScene.cpp转到第二场景方法写

                              secondScene->sceneNum = 1;

                       CCScene* scene = secondScene::scene();//一定要secondScene->sceneNum = 1放在第一行,因为此时init中sceneNum的值为1,否则则为0;
                       CCDirector::sharedDirector()->replaceScene(CCTransitionFade::create(1.5f,scene));

            4)   然后就像上面说的,试试看sceneNum为多少。

     

    三.如果只是使用另一个场景的一些

    enum NodeTag
    {
    HERO_TAG = 100,
    MYHERO_TAG = 101,
    POT_TAG=102,
    FALL_TAG=103,
    BLOCK_TAG = 104,
    STAR_TAG = 105,
    BED_TAG = 106,
    BABY_TAG =107,

    EDGE_TAG = 108,
    GROUND_TAG = 109,
    BACKGROUND_TAG = 110,

    LIFE_TAG = 111,
    PAUSE_MENU = 112,
    CONTROLBTNS=113,
    SCORELABEL=114,
    };

    则可以在另一个场景文件或者是实例类文件中

    1.先引入含有enum定义的场景文件的.h

    2.在有用到的地方写

    this->addChild(myHero, 1, GameScene::NodeTag::HERO_TAG);

  • 相关阅读:
    C/C++常用的时间函数
    二维数组动态申请空间以及二维数组函数传参问题
    vc多线程编程
    [转载]_tmain main wmain WinMain
    using namespace std 解释
    [转载]C运行时库函数和API函数的区别和联系
    ZOJ 1013 Great Equipment(DP)
    c++ 运算符优先级表
    c语言输入的一些问题
    c\c++ 随机数函数
  • 原文地址:https://www.cnblogs.com/HangZhe/p/6516506.html
Copyright © 2020-2023  润新知