Android用にcocos2d-xを使用して少しゲームをしていました。私は現在、私のゲームでクラウドセーブを実装しようとしています。残っている唯一の問題はコミットしないことです。CommitBlockingをコミットするには? - Google Playゲームサービス
私が使用しているGPGS APIはC++です。そこにあるコミットブロックまでスクロールしてください。
//using sample codes from Google.
game_services->Snapshots().Open
(
"some_save_file",
gpg::SnapshotConflictPolicy::MANUAL,
[this, &save](gpg::SnapshotManager::OpenResponse const& response)
{
LOGI("Saving snapshot");
if(gpg::IsSuccess(response.status))
{
LOGI("Open success");
gpg::SnapshotMetadata metadata = response.data;
if (response.conflict_id != "")
{
//Conflict detected
//Settle conflict
}
LOGI("Getting PNG data");
//get cover image data
//some code to get png data in to png_vector
LOGI("Building snapshot builder");
//setting up the builder
gpg::SnapshotMetadataChange::Builder builder;
gpg::SnapshotMetadataChange metadata_change =
builder
.SetDescription("Recall Save File")
.SetCoverImageFromPngData(png_vector)
.Create();
LOGI("Commiting");
// Save the snapshot.
// This is the part that does not work !!!!!
gpg::SnapshotManager::CommitResponse commitResponse =
game_services->Snapshots().CommitBlocking(gpg::Timeout(3000), response.data, metadata_change, save);
if (IsSuccess(commitResponse.status))
CSH_LOGI("Saved game");
else
CSH_LOGI("Saved game failed error: %d", commitResponse.status);
}
);
コンパイルおよび携帯電話上で動作しているとき:
06-25 16:51:47.405: V/GamesNativeSDK(10717): Snapshot was not committed, discarding.
06-25 16:51:47.410: V/GamesNativeSDK(10717): Snapshot discard complete.
私はタイムアウトなしで、それはあまりにもコミットしないクラッシュゲーム、およびCommitBlocking()、()コミットしてみました。
この問題については、ドキュメンテーションとサンプルを見てほぼ一週間過ごしました。誰もがこの問題に直面したのですか?もしそうなら、それを解決する方法を私に教えてください。
ありがとうございました。
[EnableSnapshots()](https://developers.google.com/games/services/cpp/savedgames#enabling_the_savedgames_service)を使用してスナップショットを最初に有効にしましたか? [C++の保存実装](https://github.com/playgameservices/cpp-android-basic-samples/blob/master/samples-android/CollectAllTheStarsNative/src/main/jni/CollectAllTheStarsNativeActivity.cpp)サンプルを確認してくださいGithubでそれはあなたをたくさん助けます。 – noogui
そうですね。いくつかのバグを見つけて解決しました。ありがとう –