cocos2dx学习之用户信息存储User Life is but a span.
用户的信息以XML文件方式保存,用CCUserDefault、CCFileUtils等类来管理。
#define COCOS2D_DEBUG 1
#include "UserDefaultTest.h"
#include "stdio.h"
#include "stdlib.h"
//层的构造函数。
UserDefaultTest::UserDefaultTest()
{
//取得屏幕大小,创建文字标签提示。
CCSize s = CCDirector::sharedDirector()->getWinSize();
CCLabelTTF* label = CCLabelTTF::create("CCUserDefault test see log", "Arial", 28);
//将标签放到当前层中并置于屏幕中央。
addChild(label, 0);
label->setPosition( ccp(s.width/2, s.height-50) );
//调用测试函数。
doTest();
}
void UserDefaultTest::doTest()
{
//开始打印日志。
CCLOG("********************** init value ***********************");
// 创建CCUserDefault单例并创建相应的数据类型键,设置其键值。
CCUserDefault::sharedUserDefault()->setStringForKey("string", "value1");
CCUserDefault::sharedUserDefault()->setIntegerForKey("integer", 10);
CCUserDefault::sharedUserDefault()->setFloatForKey("float", 2.3f);
CCUserDefault::sharedUserDefault()->setDoubleForKey("double", 2.4);
CCUserDefault::sharedUserDefault()->setBoolForKey("bool", true);
// 设置完后,打印各类型键取出的值。
string ret = CCUserDefault::sharedUserDefault()->getStringForKey("string");
CCLOG("string is %s", ret.c_str());
double d = CCUserDefault::sharedUserDefault()->getDoubleForKey("double");
CCLOG("double is %f", d);
int i = CCUserDefault::sharedUserDefault()->getIntegerForKey("integer");
CCLOG("integer is %d", i);
float f = CCUserDefault::sharedUserDefault()->getFloatForKey("float");
CCLOG("float is %f", f);
bool b = CCUserDefault::sharedUserDefault()->getBoolForKey("bool");
if (b)
{
CCLOG("bool is true");
}
else
{
CCLOG("bool is false");
}
//CCUserDefault::sharedUserDefault()->flush();
CCLOG("********************** after change value ***********************");
// 改变相应键的键值。
CCUserDefault::sharedUserDefault()->setStringForKey("string", "value2");
CCUserDefault::sharedUserDefault()->setIntegerForKey("integer", 11);
CCUserDefault::sharedUserDefault()->setFloatForKey("float", 2.5f);
CCUserDefault::sharedUserDefault()->setDoubleForKey("double", 2.6);
CCUserDefault::sharedUserDefault()->setBoolForKey("bool", false);
//将XML数据保存到相应文件中。
CCUserDefault::sharedUserDefault()->flush();
// 再次打印各键值。
ret = CCUserDefault::sharedUserDefault()->getStringForKey("string");
CCLOG("string is %s", ret.c_str());
d = CCUserDefault::sharedUserDefault()->getDoubleForKey("double");
CCLOG("double is %f", d);
i = CCUserDefault::sharedUserDefault()->getIntegerForKey("integer");
CCLOG("integer is %d", i);
f = CCUserDefault::sharedUserDefault()->getFloatForKey("float");
CCLOG("float is %f", f);
b = CCUserDefault::sharedUserDefault()->getBoolForKey("bool");
if (b)
{
CCLOG("bool is true");
}
else
{
CCLOG("bool is false");
}
}
//析构
UserDefaultTest::~UserDefaultTest()
{
}
//场景启动时调用。
void UserDefaultTestScene::runThisTest()
{
//创建一个演示用的层并放到当前演示场景中。
CCLayer* pLayer = new UserDefaultTest();
addChild(pLayer);
//启动当前场景。
CCDirector::sharedDirector()->replaceScene(this);
pLayer->release();
}
blog comments powered by Disqus