将全局变量恢复为默认值

在游戏中,我创建了一些全局变量,当某个动作发生时,它们的值会发生变化。当我重新启动游戏时,我希望它们的值再次设置为初始值。


K= 0


def change():

  #change global variable 

  value

  global K

  K +=5

 def restart():

  #restarts game

我可以通过将全局变量值均衡回其原始值来更改它。


K = 0

有没有其他方法可以做到这一点,当有很多变量时,我无法将它们设为本地变量。


感谢您的帮助


FFIVE
浏览 185回答 2
2回答

弑天下

那里有很少的示例代码可以为您提供示例 - 但从我所能得到的您正在尝试做的事情来看,是时候继续使用一些面向对象了。无需求助于任何更复杂的东西,您就可以拥有一个对象,该对象充当您需要跨多个函数访问的变量的名称空间。重新启动游戏后,只需创建一个新实例,并为状态保持对象设置所有初始值。由于Python的工作方式,您甚至可以将默认值设置为类属性,并且每次更新这些值时,更新只会影响与正在进行的游戏状态相对应的实例。通过这样做,您可以使用一个全局变量来保存游戏状态实例:class GameState:   k = 0   other_var = 0def restart():   global state   state = GameState()def change():   ...   state.k += 5请注意,如果您正确执行此操作,您就为“免费”获得一种保存和恢复游戏的方式奠定了基础,可以拥有多个玩家,每个玩家同时具有单独的状态,等等。

繁花如伊

如果我理解正确的话,您不希望游戏重置,而是希望在重新启动后继续。为此,您必须将变量保存到文件中。当代码运行时,所有变量及其值都存储在设备的 RAM 中。当代码停止运行时,它们将从 RAM 中删除。要在代码停止后存储变量,您必须将它们存储到硬盘上。为此,您只需创建一个文件并将所有内容放入其中即可。对于变量,您应该使用 SQLite3(数据库)或 JSON。如果你只存储一些变量 JSON 应该这样做,但如果你在游戏中存储大量变量(大量我的意思是例如世界中存在的每个实体和每个箱子等等),你应该使用数据库。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python