2012-02-15 89 views
1

有很多關於如何保存遊戲狀態的文章,而且它們都很不錯。但我有一個概念誤解,我應該在哪裏拯救國家?在哪種方法中游戲狀態應該保存/加載

我libGDX遊戲屏幕的數量,對他們是MainMenuScreenMainSceneScreen這些都是從屏幕類繼承。 MainMenuScreen顯示在遊戲開始時MainSceneScreen稍後。

什麼問題?我導航到MainSceneScreen,強制Android停止應用程序(我改變了設備上的語言設置以實現此目的)。之後,我再次選擇應用程序,我可以看到MainMenuScreen顯示。但是我想要顯示MainSceneScreen

我想我應該重寫resume方法。但是哪一個?我有班級PsGame延伸遊戲類的libgdx。我把斷點放到了它的resume方法中,結果沒有調用方法。我調查了這個問題,我發現在AndroidApplication類的onResume方法這個奇怪的代碼libGDX:

if (!firstResume) 
     graphics.resume(); 
    else 
     firstResume = false; 

我說調試firstResume是真實的,並沒有去graphics.resume( )一行。

  1. 我做錯了什麼?
  2. 我應該重寫哪些方法?
+1

嘗試發佈您的Q在http://gamedev.stackexchange.com/而不是:) – 2012-02-15 21:48:34

+0

哈哈 - 你已經做到了:o) – 2012-02-15 21:49:43

回答

1

我想你已經正確地縮小下來,你應該在你的Game子類resume方法調用中恢復您保存的狀態。如果您切換到某個其他應用程序一段時間,然後切換回您的應用程序(不經過將導致應用程序終止的步驟),應該調用此應用程序。無論出於什麼原因,libgdx都不會爲初始啓動轉發resume調用(從長遠來看,此設計可能是一個好主意,但在啓動時會有點混亂)。它很容易從您的Game中的create方法調用您的恢復代碼(僅在應用程序啓動時調用此方法),以便讓遊戲的第一次啓動具有「恢復」行爲。