加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d-x 两个场景间进行传参数

发布时间:2020-12-14 17:04:12 所属栏目:百科 来源:网络整理
导读:在coco2d-x中,两个场景间进行传值可以说是一种问题 就如: 你有两个场景,第一场景是用户登录界面,第二场景则是你登录后的界面,你如何将用户登录的值传到第二个场景呢 在我朋友(曾文理)与同事的帮助下,终于可以传值了,嘿嘿。 我总结为两种方法(有两

在coco2d-x中,两个场景间进行传值可以说是一种问题

就如:

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

在我朋友(曾文理)与同事的帮助下,终于可以传值了,嘿嘿。

我总结为两种方法(有两个场景 firstScene,secondScene)

一:1)在secondScene.h 中加入成员变量,如 int sceneNum;

并在secondScene.cpp的init()方法里,sceneNum = 0;//可以省略这句

2)在firstScene转到第二场景时,调用一下一下方法

[html] view plain copy
  1. <spanstyle="white-space:pre"></span>CCScene*scene=CCScene::create();
  2. secondScene*layer=secondScene::create();
  3. layer->sceneNum=1;
  4. scene->addChild(layer);//类似firstScene中的scene()方法
  5. CCDirector::sharedDirector()->replaceScene(CCTransitionFade::create(1.5f,scene));

3)在secondScene.cpp的验证sceneNum 的值是多少

比如,你可以再点击事件中ccTouchBegan()中写入

CCLOG("...........");
if (sceneNum == 0)
{
CCLOG("00000000000");
}
else if(sceneNum == 1)
{
CCLOG("2222222222222221111");
}
CCLOG("...........");

你就发现就为输出2222222222111了;

二: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为多少。

差不多就这样了,希望对大家有所帮助,如有疑问,请提问。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读