将全局变量设置回它们的默认值
Setting back global variables back to their default value
在游戏中,我创建了一些全局变量,它们的值会在某个动作时发生变化occur.When我重新启动游戏,我希望它们的值再次设置为初始值。
K= 0
def change():
#change global variable
value
global K
K +=5
def restart():
#restarts game
我可以通过将其等值化回其原始值来更改全局变量值。
K = 0
还有其他方法吗,当有很多变量时,我无法将它们设为本地。
感谢您的帮助
如果我没理解错的话,您不希望游戏重置,而是希望在重新启动后继续游戏。为此,您必须将变量保存到文件中。虽然代码是 运行,但所有变量及其值都存储在设备的 RAM 中。当代码停止 运行 时,它们将从 RAM 中删除。要在代码停止后存储变量,您必须将它们存储到硬盘上。为此,您可以简单地创建一个文件并将所有内容放入其中。
对于变量,您应该使用 SQLite3(数据库)或 JSON。如果你只存储一些变量 JSON 应该这样做,但是如果你在游戏中存储大量变量(大量我的意思是例如世界中存在的每个实体和每个箱子等等),你应该使用数据库。
那里没有多少示例代码可以给您举个例子 - 但从我能得到的您正在尝试做的事情来看,是时候继续使用一些面向对象了。
无需求助于任何更复杂的东西,您就可以拥有一个对象,该对象充当您需要跨多个函数访问的变量的命名空间。
在 re-starting 游戏后,只需创建一个新实例,并为您的 state-keeping 对象设置所有初始值。
由于Python的工作方式,您甚至可以将默认值设置为class属性,并且每次更新这些属性时,更新只会影响与状态对应的实例正在进行的游戏。通过这样做,您可以使用 one 全局变量,保存游戏状态实例:
class GameState:
k = 0
other_var = 0
def restart():
global state
state = GameState()
def change():
...
state.k += 5
请注意,如果您正确地执行此操作,则可以为“免费”获得一种保存和恢复游戏的方式打下基础,同时拥有多个玩家,每个玩家都有一个单独的状态,等等上。
在游戏中,我创建了一些全局变量,它们的值会在某个动作时发生变化occur.When我重新启动游戏,我希望它们的值再次设置为初始值。
K= 0
def change():
#change global variable
value
global K
K +=5
def restart():
#restarts game
我可以通过将其等值化回其原始值来更改全局变量值。
K = 0
还有其他方法吗,当有很多变量时,我无法将它们设为本地。
感谢您的帮助
如果我没理解错的话,您不希望游戏重置,而是希望在重新启动后继续游戏。为此,您必须将变量保存到文件中。虽然代码是 运行,但所有变量及其值都存储在设备的 RAM 中。当代码停止 运行 时,它们将从 RAM 中删除。要在代码停止后存储变量,您必须将它们存储到硬盘上。为此,您可以简单地创建一个文件并将所有内容放入其中。
对于变量,您应该使用 SQLite3(数据库)或 JSON。如果你只存储一些变量 JSON 应该这样做,但是如果你在游戏中存储大量变量(大量我的意思是例如世界中存在的每个实体和每个箱子等等),你应该使用数据库。
那里没有多少示例代码可以给您举个例子 - 但从我能得到的您正在尝试做的事情来看,是时候继续使用一些面向对象了。
无需求助于任何更复杂的东西,您就可以拥有一个对象,该对象充当您需要跨多个函数访问的变量的命名空间。
在 re-starting 游戏后,只需创建一个新实例,并为您的 state-keeping 对象设置所有初始值。
由于Python的工作方式,您甚至可以将默认值设置为class属性,并且每次更新这些属性时,更新只会影响与状态对应的实例正在进行的游戏。通过这样做,您可以使用 one 全局变量,保存游戏状态实例:
class GameState:
k = 0
other_var = 0
def restart():
global state
state = GameState()
def change():
...
state.k += 5
请注意,如果您正确地执行此操作,则可以为“免费”获得一种保存和恢复游戏的方式打下基础,同时拥有多个玩家,每个玩家都有一个单独的状态,等等上。