大家都知道一个程序中只有一个导演类,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. HashSet和SortSet对比--c#学习笔记

    微软在 .NET 3.5 新增了一个 HashSet 类,在 .NET 4 新增了一个 SortedSet 类. .NET Collection 函数库的 HashSet.SortedSet 这两个泛 ...

  2. EXCel鼠标右键不能用解决办法

    EXCel鼠标右键不能用解决办法 倒腾vba首要是保证安全,各路大神的代码非常神奇,莫名的就让你的excel嘎嘣了,如出现右键无法使用(确定不是您的鼠标问题),那么以下代码可完全修复设置.操作步骤:打 ...

  3. sudo apt-get update 没有公钥,无法验证下列签名

    在更新系统源后,输入sudo apt-get update之后出现提示: W: GPG 错误:http://archive.ubuntukylin.com:10006 xenial InRelease ...

  4. 数据库sql的join多表

    摘录文章 SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据.注意,join后的数据记录数不一定就是左或右表的简单连接,图表只代表集合关系,在数量上并不准确,如这个条件后结果, ...

  5. rootkit基础

    应用程序总是离不开系统内核所提供的服务,比如它要使用内存的时候,只要跟操作系统申请就行了,而不用自己操心哪里有空闲的内存空间等问题,实际上,这些问题是由操作系统的内核来代劳的.站在黑客的角度讲,如果能 ...

  6. Java系统中如何拆分同步和异步

    很多开发人员说,将应用程序切换到异步处理很复杂.因为他们有一个天然需要同步通信的Web应用程序.在这篇文章中,我想介绍一种方法来达到异步通信的目的:使用一些众所周知的库和工具来设计他们的系统. 下面的 ...

  7. IOS-4-面试题1:黑马程序猿IOS面试题大全

    一.多线程网络 1. 多线程的底层实现? 1> 首先搞清楚什么是线程.什么是多线程 2> Mach是第一个以多线程方式处理任务的系统.因此多线程的底层实现机制是基于Mach的线程 3> ...

  8. Two stage U-Boot design

    In AM335x the ROM code serves as the bootstrap loader, sometimes referred to as the Initial Program ...

  9. 时间控件(DateTime Picker)

    中文:http://www.bootcss.com/p/bootstrap-datetimepicker/index.htm http://www.malot.fr/bootstrap-datetim ...

  10. erlang中通过ip和子网掩码,计算地址范围 【二进制和十进制的转换】

    在程序中,难免用的二进制和十进制之间的转换.遇到一个场景,通过ip和子网掩码,计算地址范围. 而地址范围为:网络地址+1—— 广播地址 -1 .  网络地址即ip和子网掩码的与的位运算.广播地址为:网 ...