我一直在爲Android編寫一個紙牌遊戲,而且我拼命地停留在如何保存我的遊戲狀態。爲了簡要解釋我的程序,我有一個Sprite類來顯示我的卡片,其中包含位圖圖像,位置點和邊界矩形。我繼承這個類來創建一個卡類,其中有兩個位圖根據卡片是正面還是向下進行切換,以及用於存儲花色和等級的枚舉。這些卡片對象被放置在包含和附加位置的CardStack對象以及卡片的陣列列表中。遊戲模型包含各種CardStack,以及棧之間移動卡的規則。遊戲的效果很好。無需序列化的Java深度複製
現在我想弄清楚如何保存我的遊戲狀態。我想序列化我的整個遊戲對象並將其保存到文件中。但是,有很多不可序列化的對象(位圖,點,矩形,顏色等)。在C#中,我知道你可以使用一個MemoryStream並複製整個對象,但是我不能在Java中找到一個不需要所有東西都可序列化的類似方法。 Java中有沒有類似的東西?任何更好的方式我可以構建我的遊戲模型對象?任何建議將不勝感激。謝謝!
你並不需要保存的東西像一個位圖d矩形。將堆棧的位置與位置一起保存,並在其中添加卡片的枚舉應該足以恢復狀態並且還可以節省內存。 – Joru
不知道遊戲如何玩,我不知道你必須保存哪些信息。但是如果我想象的方式是正確的,那麼你是否只需要將所有堆疊中的每張牌的值和套件存儲起來就可以重新創建遊戲狀態?如果你知道卡片套件和等級,可以計算出位圖和顏色。至於位置(點和矩形)這些確切的重要嗎? I.E.允許用戶將卡/堆棧移動到任何x/y位置嗎?或者是否有允許的「插槽」?如果後者只需要存儲卡/堆棧應該在哪個插槽中。 – FoamyGuy