2 回答
TA贡献1818条经验 获得超8个赞
那里有很少的示例代码可以为您提供示例 - 但从我所能得到的您正在尝试做的事情来看,是时候继续使用一些面向对象了。
无需求助于任何更复杂的东西,您就可以拥有一个对象,该对象充当您需要跨多个函数访问的变量的名称空间。
重新启动游戏后,只需创建一个新实例,并为状态保持对象设置所有初始值。
由于Python的工作方式,您甚至可以将默认值设置为类属性,并且每次更新这些值时,更新只会影响与正在进行的游戏状态相对应的实例。通过这样做,您可以使用一个全局变量来保存游戏状态实例:
class GameState:
k = 0
other_var = 0
def restart():
global state
state = GameState()
def change():
...
state.k += 5
请注意,如果您正确执行此操作,您就为“免费”获得一种保存和恢复游戏的方式奠定了基础,可以拥有多个玩家,每个玩家同时具有单独的状态,等等。
TA贡献2012条经验 获得超12个赞
如果我理解正确的话,您不希望游戏重置,而是希望在重新启动后继续。为此,您必须将变量保存到文件中。当代码运行时,所有变量及其值都存储在设备的 RAM 中。当代码停止运行时,它们将从 RAM 中删除。要在代码停止后存储变量,您必须将它们存储到硬盘上。为此,您只需创建一个文件并将所有内容放入其中即可。
对于变量,您应该使用 SQLite3(数据库)或 JSON。如果你只存储一些变量 JSON 应该这样做,但如果你在游戏中存储大量变量(大量我的意思是例如世界中存在的每个实体和每个箱子等等),你应该使用数据库。
添加回答
举报