2017-07-14 12 views
0

私はcocos2dxに値を保存する方法を見つけました。これは私が見つけた方法です:Cocos2dx:データを保存できませんか?

UserDefault *def = UserDefault::getInstance(); 

def->setIntegerForKey("HIGHSCORE", highscore); // highscore = 100 

def->flush(); 

しかし、私はそのキーで値を得るとき、私はまだ0を得る:

auto val = def->getIntegerForKey("HIGHSCORE"); 
「UserDefault.xml」という名前のファイルがwindowbutでのAppDataディレクトリに作成された

データはありません。そのファイルにデータを保存するには、flush()関数をオーバーライドする必要がありますか?

開発プラットフォーム(WindowとMacOSXの上)の両方で正常に動作し、コードの下
+1

[mcve]を入力してください。私はcocos2dxについては何も知りませんが、キー "HIGHSCORE"を書いてキー "HIGHSCORE FLAPPY"を読むと驚くべきことです。 – user463035818

+0

申し訳ありませんが、それは私のせいです。私は同じキーで書き込みと読み込みを行いますが、それでも0を返しても、値を設定しています –

答えて

0

データ保存:

UserDefault* _userDef = UserDefault::getInstance(); 
_userDef->setIntegerForKey("HIGHSCORE", score); 
_userDef->flush(); 

は、データを取得:

int current_score= _userDef->getIntegerForKey("HIGHSCORE"); 

は、エクスプローラで、あなたのXMLファイルにアクセスしたいです:

CCLOG(_userDef->getXMLFilePath().c_str()); 

.xmlファイルの印刷場所は、user_nameapp_nameは、ユーザー名とアプリ名によって異なります。

C:/Users/user_name/AppData/Local/app_name/UserDefault.xml

+0

指示と同じ方法で行いましたが、動作しませんでしたが、XMLファイルにはまだデータがありません。 –

+0

flush()関数には何も実装されていません。私はそれを無効にする必要がありますか? –

+0

プラットフォーム固有の実装を持つ 'UserData'は、MacとIOSでのみ必要な' flush() 'と思います – Aryan

関連する問題