zoukankan      html  css  js  c++  java
  • 关于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);

  • 相关阅读:
    推荐几款很棒的 JavaScript 表单美化和验证插件
    开源来自百度商业前端数据可视化团队的超漂亮动态图表--ECharts
    两种高性能 I/O 设计模式 Reactor 和 Proactor
    基本排序算法:Python实现
    局域网聊天软件(winsocket)
    MFC控件(8):command button与syslink control
    Linux python2.4升级到2.7
    调色板QPalette类用法详解(附实例、源码)(很清楚:窗口背景色 前景色 按钮的颜色 按钮文本的颜色 )
    在IT公司,project manager 基本上和秘书,助理什么的差不多
    Qt之OpenSSL(有pro文件的路径格式,以及对libeay32和ssleay32的引用)
  • 原文地址:https://www.cnblogs.com/HangZhe/p/6516506.html
Copyright © 2011-2022 走看看