如何在pygame中实现保存/加载游戏功能?

9 投票
1 回答
17587 浏览
提问于 2025-04-16 19:58

我需要为我的角色扮演游戏(RPG)制作保存和加载游戏的功能。我可以保存玩家的位置,但我想要的是在某个时刻冻结整个屏幕,就像在一些模拟器(比如vba和snes9x)中那样。或者我也想设置一些保存点,这样我可以在这些地方保存游戏,然后再从那里开始。有没有人能告诉我该怎么做?任何代码都可以,甚至是理论上的伪代码也欢迎。

1 个回答

23

你可以使用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)

游戏状态就是你恢复游戏所需的所有信息,包括游戏世界的状态和任何用户界面的状态等等。如果你的游戏状态分散在多个对象中,而没有一个对象把它们组合在一起,你可以简单地把所有需要的对象放在一个列表里,然后用pickle来保存这个列表。

撰写回答