大家都知道一个程序中只有一个导演类,eg:

 CCDirector *pDirectory = CCDirector::sharedDirector();//初始化导演类。

可通过 pDirectory->属性 取得自己想要的值。

我们也可以自己设定一个类用于存储只初始化一次的量,刚开始学2dx,今天为了2个CCLayer之间传值而使用单例,设定A界面的几个参数值,当A场景切换跳转到B界面时,B需要用到A界面的这几个参数值,故单独写了个单例类用于存储数据参数。

.h:

#ifndef __ResultCar__GameData__

#define __ResultCar__GameData__

#include <iostream>

#include "cocos2d.h"

class GameData : public cocos2d::CCObject {

public:

    static GameData* sharedGameData();

    CC_PROPERTY(float, myEngine, MyEngine);

    CC_PROPERTY(float, myG, MyG);

    CC_PROPERTY(float, myFrition, MyFrition);

};

.m:

#include "GameData.h"

GameData *gameData = NULL;

GameData* GameData::sharedGameData()

{

    if(!gameData)

        gameData = new GameData();

    return gameData;

}

float GameData::getMyEngine()

{

    return myEngine;

}

void GameData::setMyEngine(float engine)

{

    myEngine = engine;

}

float GameData::getMyG()

{

    return myG;

}

void GameData::setMyG(float g)

{

    myG = g;

}

float GameData::getMyFrition()

{

    return myFrition;

}

void GameData::setMyFrition(float frition)

{

    myFrition = frition;

}

当我存储数据的时候可通过以下代码存储:

GameData::sharedGameData()->setMyEngine(myEngine); // myEngine是A界面的参数

这里设定了3个参数分别存储:

GameData::sharedGameData()->setMyG(myI);

GameData::sharedGameData()->setMyFrition(myFriction);

当我在B界面用到这几个参数的时候可通过如下代码来获得:

//car_myEngine   car_myI  car_myFrition 为B界面用于接收数据的属性值

  car_myEngine =  GameData::sharedGameData()->getMyEngine();

    car_myI = GameData::sharedGameData()->getMyG();

    car_myFrition = GameData::sharedGameData()->getMyFrition();

Cocos2d-x中单例的使用的更多相关文章

  1. swift 中单例的写法

    在swift中单例的写法和oc的有所不同,在书写的时候又分很多种写法,,如果一个.swift 文件只创建了一个类,可以用那种dispatch_once的写法,如果一个.swift文件中有很多类的存在, ...

  2. beanfactory中单例bean的初始化过程(一)

    Date 10.06 pm Point 完成beanfactory中单例bean的初始化 beanFactory.preInstantiateSingletons() 拿到所有的bean定义信息(在 ...

  3. 浅谈cocos2dx(17) 中单例管理模式

    ----我的生活,我的点点滴滴!. 首先明白一个问题.什么是管理者模式,管理类是用来管理一组相关对象的类,他提供了訪问对象的接口,假设这么说比較抽象的话.我们来看下cocos2dx中都有哪些类是管理类 ...

  4. Java中单例

    Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例.饿汉式单例 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3. ...

  5. SpringMVC、Struts1、Struts2和SSH2框架中单例与多例的解析

    struts1是单例提供服务,请求数据绑定在actionform里,form当做参数传入调用方法,不用实例变量就不会出现并发问题. spring mvc的contrller也是这样的模式 struts ...

  6. Java中单例设计模式总结

    两种单例常见的实现方式: 1:懒汉的设计模式,在第一次调用的时候才完成相关的初始化操作 懒汉式是典型的时间换空间,就是每次获取实例都会进行判断,看是否需要创建实例,浪费判断的时间.当然,如果一直没有人 ...

  7. java中单例设计模式

    在java中创建单例的方式主要有三种:饿汉式.懒汉式.登记式.以下内容均是摘抄自 http://blog.csdn.net/jason0539/article/details/23297037/ 一. ...

  8. IOS中单例NSUserDefaults的使用(转)

    一.了解NSUserDefaults以及它可以直接存储的类型 http://my.oschina.net/u/1245365/blog/294449 NSUserDefaults是一个单例,在整个程序 ...

  9. OC中单例的使用

    单例:一个类只能创建一个实例,保证在全局使用过程中是唯一的实例,方便统一管理. 1> 创建单例 其中的dispatch_once 的作用就是执行且在整个程序的声明周期中,仅执行一次某一个bloc ...

随机推荐

  1. 单选复选框的js代码取值

    单选框 复选框选中后的js代码处理 <script type="text/javascript"> function check(){ document.getElem ...

  2. bzoj1061【NOI2008】志愿者招募

    1061: [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 2740  Solved: 1703 [Submit][id ...

  3. 怎样在编译的时候,控制删除apk不用的资源?

    1.改动alps/meidatek/config/xxx/ProjectConfig.mk下的MTK_PRODUCT_LOCALS,去掉不用的资源,比方屏幕密度或语言等.  2. nodpi和mipm ...

  4. 下一代Apache Hadoop MapReduce框架的架构

    背景 随着集群规模和负载增加,MapReduce JobTracker在内存消耗,线程模型和扩展性/可靠性/性能方面暴露出了缺点,为此需要对它进行大整修. 需求 当我们对Hadoop MapReduc ...

  5. golang中并发sync和channel

    golang中实现并发非常简单,只需在需要并发的函数前面添加关键字"go",但是如何处理go并发机制中不同goroutine之间的同步与通信,golang 中提供了sync包和channel ...

  6. redis错误error记录

    早上登服务器,看到程序的redis的报错, 具体如下: (error) MISCONF Redis is configured to save RDB snapshots, but is curren ...

  7. Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法(转)

    转载: Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法   首先感谢博主分享,本文作为学习记录 惊鸿一瞥 微信的启动页,相信大家都不陌生. 不知道大家有没有发现一个现象 ...

  8. Echache整合Spring缓存实例解说

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要介绍了EhCache,并通过整合Spring给出了一个使用实例. 一.EhCac ...

  9. JS学习总结之操作文档对象模型

    操作文档对象模型 DOM 结构树 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可拓展置标语言的标准编程接口.它是一种与平台和语言无关的应用程序接口(A ...

  10. RPM包的使用

    不同yum安装源配置文件 ls -l /etc/yum.repo.d RPM包的主包和子功能包 mount /dev/cdrom /media/cdrom cd /media/cdrom/Packag ...