2017-07-18 21 views
0

我將我的libGDX安卓遊戲的保存系統更改爲Google保存的遊戲,並且我想自動保存並加載快照,因此用戶在卸載之前不必記得保存,例如。我的「舊」系統使用本地json文件進行存儲。我有一個課程,它保存了玩家當前的所有「狀態」值,並且每次我的用戶更換屏幕時我都會將狀態保存到文件中。它完美地工作,因爲儲蓄本身在我的屏幕被破壞之前完成了。現在,通過快照進行的保存過程要求保存機制位於AsyncTask之內。我寧願在用戶關閉應用程序時寫入保存(或者被os關閉),但我不知道如何。如果我嘗試寫入快照,比如說onPause(),則寫入失敗,因爲我使用的GameHelper對象在運行asynctask時會運行onStop()方法。有沒有辦法在應用程序退出時編寫快照?我應該何時爲Google Play保存的遊戲寫入快照?

回答

0

嘗試使用推薦的分辨率進行了github上論壇,How do we save game on pause or quit?

確保始終保持可用的元數據和開放。

第一次加載再次

  • 開放的元數據
  • 加載遊戲
  • 開放的元數據,保持基準開元

OnApplicationPause或OnApplicationQuit

  • 使用先前打開的元數據的CommitUpdate。

OnApplicationPause(恢復)再次

打開元數據,保持一個參考打開元數據。通過始終打開 元數據,您始終可以保存OnApplicationPause。 記住我們需要在遊戲繼續時再次打開元數據, ,因爲CommitUpdate關閉了我們的元數據OnApplicationPause。

使用此方法,您需要準備好處理文件衝突 字面上在您的應用程序中隨處可見 - 用戶可以隨時暫停 應用程序。當應用程序恢復時,您需要打開 元數據 - 您無法打開元數據,直到解決任何衝突爲 。

要添加到這一點,如果你想在任意點保存遊戲 時間,(而不是在OnApplicationPause),那麼你將需要:

保存在任何其他點(即:載入畫面/電平躍遷)再次使用先前打開的元數據 打開元數據

CommitUpdate,保持一個參考打開元數據。

相關問題