Cocos2d-x保存用户游戏数据CCUserDefault类使用实例

我们可以利用这个类来保存我们的游戏数据,下面的代码是具体的用法。

bool HelloWorld::init()
{
  //////////////////////////////
  // 1. super init first
  if ( !CCLayer::init() )
  {
    return false;
  }

	bool bvalue = true;
	int ivalue = 100;
	float fvalue = 3.14f;
	double dvalue = 3.1415926;
	std::string svalue = "www.zaojiahua.com";

	//函数的意思很明白,第一个都是一个char * 类型的变量,第二个就是要写入的变量对应的类型
	//CCuserDefault类是一个单例设计模式
	CCUserDefault::sharedUserDefault()->setBoolForKey("bvalue",bvalue);
	CCUserDefault::sharedUserDefault()->setIntegerForKey("ivalue",ivalue);
	CCUserDefault::sharedUserDefault()->setFloatForKey("fvalue",fvalue);
	CCUserDefault::sharedUserDefault()->setDoubleForKey("dvalue",dvalue);
	CCUserDefault::sharedUserDefault()->setStringForKey("svalue",svalue);

	//将内容写到文件UserDefault.xml中,这个文件在proj.win32\Debug.win32目录下
	CCUserDefault::sharedUserDefault()->flush();

	//用来读取数据,如果你是用python建立的工程,那个dos窗口是出不来的,你需要修改main.cpp的代码
	//修改的时候按照原来使用模板建立的工程修改。
	CCLOG("ivalue = %d\ndvalue = %lf\nfvalue = %f\nsvalue=%s\n",
		CCUserDefault::sharedUserDefault()->getIntegerForKey("ivalue"),
		CCUserDefault::sharedUserDefault()->getDoubleForKey("dvalue"),
		CCUserDefault::sharedUserDefault()->getFloatForKey("fvalue"),
		CCUserDefault::sharedUserDefault()->getStringForKey("svalue").c_str()
		);

  return true;
}
(0)

相关推荐

  • Cocos2d-x中CCEditBox文本输入框的使用实例

    文本输入框这个东西相信大家不论做什么游戏总会用到吧,今天我们就来看看这个东西如何使用.文本输入框同样属于扩展库中的内容,所以你知道怎么做了吧.当用户要在文本框中输入内容,这一系列的过程我们需要一些函数的调用来获得我们想要的东西,包含这些函数的类需要实现CCEditBoxDelegate这个接口,下面我们来看看具体如何使用吧. #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h"

  • Cocos2d-x Schedule定时器的使用实例

    schedule可以实现定时器的功能,就是每隔一段时间做什么事情,schedule的调用者是节点,所有的节点都可以调用schedule函数,参数需要传入一个函数(schedule_selector一个新的选择器),在函数中可以完成碰撞检测等功能.下面就具体来看看这个函数的用法吧. bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //schedule传入一个参数的时候每一帧都会调用s

  • cocos2dx骨骼动画Armature源码剖析(一)

    cocos2dx从编辑器(cocostudio或flash插件dragonBones)得到xml或json数据,调用类似如下所示代码就可以展示出动画效果 ArmatureDataManager::getInstance()->addArmatureFileInfoAsync( "armature/Dragon.png", "armature/Dragon.plist", "armature/Dragon.xml", this, schedu

  • cocos2dx骨骼动画Armature源码剖析(二)

    上篇文章从总体上介绍了cocos2dx自带的骨骼动画,这篇文章介绍一下导出的配置数据各个字段的含义(也解释了DragonBone导出的xml数据每个字段的含义). skeleton节点 <skeleton name="Dragon" frameRate="24" version="2.2"> name:flash文件名字. frameRate:flash帧率. version:dragonbones版本号. armatures节点 首

  • Cocos2d-x中实现弹出对话框示例

    在游戏中我们经常会看到弹出一个对话框让我们进行选择,今天我们就在cocos2dx中实现这个对话框.对话框说白了也是一个层,当我们点击某一个按钮的时候这个层被加进了当前的场景中,同时场景中的其他的层都是不可点击的,这个时候就涉及到触摸的优先级的一些问题,当然有些时候你也可以根据自己的需要让其他的层也可以点击,但是道理都是一样的,学会了这个其他的按照自己的要求去实现吧.下面我将弹出层单独分装成一个类,供我们调用. /*对话框场景类的头文件*/ #ifndef _POP_SCENE_H_ #defin

  • Cocos2d-x触摸事件实例

    在玩手机游戏的时候,屏幕接收我们的触摸消息是必不可少的,根据我们的触摸事件,去实现相应的功能,这里我们就来学习一下cocos2d-x中的触摸是怎么实现的.触摸分为单点触摸和多点触摸,先来看单点触摸,就是接收一个点的触摸.代码将实现过程清楚的写了下来,仔细分析代码吧. bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //开启触摸 this->setTouchEnabled(true)

  • Cocos2d-x中获取系统时间和随机数实例

    随机数是我们在程序中经常要用到的,cocos2d-x用CCRANDOM_0_1产生随机数,但我们最后给它传入一个随机数种子,这样产生的随机数才是真正的随机数,而这个种子就是我们一般使用的时间.下面通过代码看看我们如何实现. bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //获取系统时间 //time_t是long类型,精确到秒,通过time()函数可以获得当前时间和1970年1月

  • cocos2dx骨骼动画Armature源码剖析(三)

    cocos2dx里骨骼动画代码在cocos -> editor-support -> cocostudio文件夹中,win下通过筛选器,文件结构如下.(mac下没有分,是整个一坨) armature(目录): animation(目录):动画控制相关. CCProcessBase(文件): ProcessBase(类):CCTween和ArmatureAnimation的基类. CCTWeen(文件): Tween(类):控制flash里一个layer的动画. CCArmatureAnimat

  • Cocos2d-x中使用CCScrollView来实现关卡选择实例

    类似关卡选择的这种功能游戏中经常看到,比如帮助场景,选择关卡,通过滑动的方式选择一些其他的东西等等.今天我们实现关卡的选择是使用CCScrollView这个类.当然还有一些其他的方法,比如使用cocostudio的page view也可以.我先说下整体的思路,CCScrollView这个类是继承自CCLayer的,本身的触摸事件有些bug,所以网上一般将这个层的touch事件处理为false,而使用它的父节点来处理触摸事件,我们也是采用这个做法.先定义一个LevelScene类,将CCScrol

  • Cocos2d-x人物动作类实例

    我们玩的游戏一般都可以看到精灵的运动,游戏的世界就是一个运动的世界,而所有的这些动作都可以分为一些基本的动作和动作的组合,今天就来学习一下动作类CCAction,首先看一下类之间的继承关系. CCAction类下派生了三个动作类,执行动作的类是CCNode以及它的子类,通过函数runAction()来执行动作,其中CCFiniteTimeAction之下是常用的瞬时动作和延时动作.动作从本质上来说就是改变节点的属性,瞬时动作就是改变这些属性不需要时间,瞬时就完成了,而延时动作改变这些属性需要一些

随机推荐