【发布时间】:2011-09-19 04:53:14
【问题描述】:
我需要为我的 rpg 制作保存/加载游戏功能。我可以保存播放器的位置,但我想要的是在某一点冻结整个屏幕,就像在 vba 和 snes9x 等模拟器中所做的那样。或者也许可以制作保存位置,我可以保存游戏并重新开始。谁能告诉我你是怎么做这些事情的?欢迎任何代码,甚至是基于理论的伪代码。
【问题讨论】:
我需要为我的 rpg 制作保存/加载游戏功能。我可以保存播放器的位置,但我想要的是在某一点冻结整个屏幕,就像在 vba 和 snes9x 等模拟器中所做的那样。或者也许可以制作保存位置,我可以保存游戏并重新开始。谁能告诉我你是怎么做这些事情的?欢迎任何代码,甚至是基于理论的伪代码。
【问题讨论】:
您可以使用pickle 来序列化 Python 数据。这与pygame无关。
所以如果你的游戏状态完全存储在对象foo中,要保存到文件“savegame”(先import pickle):
with open("savegame", "wb") as f:
pickle.dump(foo, f)
加载:
with open("savegame", "rb") as f:
foo = pickle.load(f)
游戏状态是您恢复游戏所需的所有必要信息,即游戏世界状态以及任何 UI 状态等。如果您的游戏状态分布在多个对象中,而没有单个对象构成它们,您可以简单地挑选一个包含所有需要对象的列表。
【讨论】: