//GameScene.h
#include "cocos2d.h"
USING_NS_CC;
class GameScene : public cocos2d::Layer
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
void menuCallback(Ref* pSender);
CREATE_FUNC(GameScene);
private: //注意不能用auto關鍵字
Size size;
Sprite *sprite;
};this
//GameScene.cpp
// Created by Jacedy on 14-8-11.
#include "GameScene.h"
USING_NS_CC;
cocos2d::Scene* GameScene::createScene()
{
auto scene = Scene::create(); //建立一個場景
auto layer = GameScene::create(); //建立一個圖層
scene->addChild(layer);
return scene;
}
//初始化當前的圖層
bool GameScene::init()
{
if(!Layer::init()) //初始化父類
return false;
//獲取屏幕大小
size = Director::getInstance()->getVisibleSize();
//auto size = Director::getInstance()->getWinSize();
//添加一個圖片精靈
sprite = Sprite::create("OnePiece_1.png");
sprite->setPosition(Vec2(size.width/2, size.height/2));
this->addChild(sprite);
//新建數據
UserDefault::getInstance()->setBoolForKey("BOOL", true);
UserDefault::getInstance()->setFloatForKey("Float", 12.18);
UserDefault::getInstance()->setStringForKey("String", "Jacedy");
//保存數據
UserDefault::getInstance()->flush();
bool b = UserDefault::getInstance()->getBoolForKey("BOOL", false); //第二個參數爲初始化內容
float f = UserDefault::getInstance()->getFloatForKey("Float", 0.0f);
std::string s = UserDefault::getInstance()->getStringForKey("String", "null");
//打印輸出
log("b = %d", b);
log("f = %f", f);
log("s = %s", s.c_str());
//獲取文件路徑
//FileUtils::getInstance()->getWritablePath();
//判斷XML文件是否存在
//UserDefault::getInstance()->isXMLFileExit();
return true;
}
void GameScene::menuCallback(Ref* pSender)
{
}spa
備註:使用UserDefault保存最高分、聲音等一些數據,當用戶結束了遊戲從新打開時,若是使用 isXMLFileExit() 來判斷XML文件是否存在,那麼系統就會初始化XML文件,裏面原來的數據也就清除了。因此不能用isXMLFileExit() ,解決辦法:經過直接判斷一個鍵值是否存在來獲取XML文件數據,代碼以下:遊戲
bool MenuLayer::init()
{
if(!Layer::init()) //初始化父類
return false;
size = Director::getInstance()->getVisibleSize();
//初始化最高分數
if(!UserDefault::getInstance()->getBoolForKey("isExit", false))
{
UserDefault::getInstance()->setBoolForKey("isExit",true);
m_bestscore = 0;
UserDefault::getInstance()->setIntegerForKey("m_bestscore", 0);
//第一次運行時,若是XML文件不存在就會新建
UserDefault::getInstance()->flush();
}
return true;
} 圖片