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

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

两种方法(有两个场景 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(, 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);

关于Cocos2d-x中两个场景之间参数的传递的更多相关文章

  1. HTML5中window.postMessage,在两个页面之间的数据传递

    HTML5中window.postMessage,在两个页面之间的数据传递 2015年11月3日 8536次浏览 关于postMessage window.postMessage虽然说是html5的功 ...

  2. 在db2中 两个数据库之间的两个表的联合查询

    大家好,今天遇到了在db2中 两个数据库之间的两个表的联合查询 我知道oracle中有dblink,可是不知到db2的两个数据库联合查询怎么处理我找了类似于比如两个数据库: db1,db2用户名密码s ...

  3. lintcode-176-图中两个点之间的路线

    176-图中两个点之间的路线 给出一张有向图,设计一个算法判断两个点 s 与 t 之间是否存在路线. 样例 如下图: for s = B and t = E, return true for s = ...

  4. [转]ASP.NET MVC中的两个Action之间值的传递--TempData

    本文转自:ASP.NET MVC中的两个Action之间值的传递--TempData 一. ASP.NET MVC中的TempData 在ASP.NET MVC框架的ControllerBase中存在 ...

  5. iOS开发中视图控制器ViewControllers之间的数据传递

    iOS开发中视图控制器ViewControllers之间的数据传递 这里我们用一个demo来说明ios是如何在视图控制器之间传递重要的参数的.本文先从手写UI来讨论,在下一篇文章中讨论在storybo ...

  6. intent,实现两个活动之间数据的传递

    一.Intent 可以启动一个活动,也可以在启动活动的时候传递数据.intent中提供了putExtra()方法,它可以把我们想要传递的数据暂存在intent中,启动了另一个活动后,通过getInte ...

  7. 前端与后端之间参数的传递与接收和@RequestBody,@Requestparam,@Param三个注解的使用

    参数在前台通过对象的形式传递到后台,在后台,可以用@RequestBody注解通过Map或JSONObject接收(太麻烦,既要从Map中取值,取完值后又要封装到Map),也可以用@RequestPa ...

  8. Android中两个Activity之间简单通信

    在Android中,一个界面被称为一个activity,在两个界面之间通信,采用的是使用一个中间传话者(即Intent类)的模式,而不是直接通信. 下面演示如何实现两个activity之间的通信. 信 ...

  9. ASP.NET MVC3中Controller与View之间的数据传递

    在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一.  Controller向Vie ...

随机推荐

  1. cocoaspod使用 引用头文件找不到

    使用cocoasPod做第三方类库管理非常方便,但是在使用的过程之中会遇到一些小问题!比如初次使用会遇到 引入类库,说找不到文件 target--build settings---user searc ...

  2. Java浮点运算-BigDecimal

    package com.hsun.test; import static java.lang.System.out; import java.math.BigDecimal; public class ...

  3. KineticJS教程(7)

    KineticJS教程(7) 作者: ysm 7.图形变换 7.1.线性变化 Kinetic提供了一个图形对象的transitionTo(config)方法实现图形的线性变换,也就是从原始的状态线性变 ...

  4. [Exceptions Spring 2] - Cannot create a session after the response has been committed

    2016-02-23 14:06:27,416 [http-bio-8080-exec-1] DEBUG [org.springframework.beans.factory.support.Defa ...

  5. scribe 搭建遇到的问题

    1.如果安装了多个boost版本或boost路径不是scribe脚本指定的话,会出现问题: checking whether the Boost::System library is availabl ...

  6. java 线程安全集合

    ConcurrentMap 线程安全的HashMap CopyOnWriteArrayList 读多写少的线程安全的ArrayList,性能比vector好. ConcurrentLinkedQueu ...

  7. python selenium 自动化测试环境安装

    注意:2.7和3.0版本的语法有些不一样 安装自动化测试软件 selenium(地址http://www.seleniumhq.org/download/) 安装步骤: 1.安装pythone运行环境 ...

  8. Android 混淆打包不混淆第三方jar包

    项目由于要公布,所以要混淆打包. 混淆打包流程: 1.在proguard-project.txt文件里加入不须要混淆的类和第三方的jar包   这个是保持自己包中不须要混淆的类,假设有些类调用了jni ...

  9. “cvc-complex-type.2.4.a: Invalid content was found starting with element 'taglib'”错误的解决办法

    <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" ...

  10. PHP代码优化之缓存(转)

    我们在编写程序时,总是想要使自己的程序占用资源最小,运行速度更快,代码量更少.往往我们在追求这些的同时却失去了很多东西.下面我想讲讲我对PHP优化的理解.优化的目的是花最少的代价换来最快的运行速度与最 ...