我一直在为Android编写一个纸牌游戏,而且我拼命地停留在如何保存我的游戏状态。为了简要解释我的程序,我有一个Sprite类来显示我的卡片,其中包含位图图像,位置点和边界矩形。我继承这个类来创建一个卡类,其中有两个位图根据卡片是正面还是向下进行切换,以及用于存储花色和等级的枚举。这些卡片对象被放置在包含和附加位置的CardStack对象以及卡片的阵列列表中。游戏模型包含各种CardStack,以及栈之间移动卡的规则。游戏的效果很好。无需序列化的Java深度复制
现在我想弄清楚如何保存我的游戏状态。我想序列化我的整个游戏对象并将其保存到文件中。但是,有很多不可序列化的对象(位图,点,矩形,颜色等)。在C#中,我知道你可以使用一个MemoryStream并复制整个对象,但是我不能在Java中找到一个不需要所有东西都可序列化的类似方法。 Java中有没有类似的东西?任何更好的方式我可以构建我的游戏模型对象?任何建议将不胜感激。谢谢!
你并不需要保存的东西像一个位图d矩形。将堆栈的位置与位置一起保存,并在其中添加卡片的枚举应该足以恢复状态并且还可以节省内存。 – Joru
不知道游戏如何玩,我不知道你必须保存哪些信息。但是如果我想象的方式是正确的,那么你是否只需要将所有堆叠中的每张牌的值和套件存储起来就可以重新创建游戏状态?如果你知道卡片套件和等级,可以计算出位图和颜色。至于位置(点和矩形)这些确切的重要吗? I.E.允许用户将卡/堆栈移动到任何x/y位置吗?或者是否有允许的“插槽”?如果后者只需要存储卡/堆栈应该在哪个插槽中。 – FoamyGuy