为了账号安全,请及时绑定邮箱和手机立即绑定

将全局变量恢复为默认值

将全局变量恢复为默认值

FFIVE 2023-10-25 10:35:13
在游戏中,我创建了一些全局变量,当某个动作发生时,它们的值会发生变化。当我重新启动游戏时,我希望它们的值再次设置为初始值。K= 0def change():  #change global variable   value  global K  K +=5 def restart():  #restarts game我可以通过将全局变量值均衡回其原始值来更改它。K = 0有没有其他方法可以做到这一点,当有很多变量时,我无法将它们设为本地变量。感谢您的帮助
查看完整描述

2 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

那里有很少的示例代码可以为您提供示例 - 但从我所能得到的您正在尝试做的事情来看,是时候继续使用一些面向对象了。


无需求助于任何更复杂的东西,您就可以拥有一个对象,该对象充当您需要跨多个函数访问的变量的名称空间。


重新启动游戏后,只需创建一个新实例,并为状态保持对象设置所有初始值。


由于Python的工作方式,您甚至可以将默认值设置为类属性,并且每次更新这些值时,更新只会影响与正在进行的游戏状态相对应的实例。通过这样做,您可以使用一个全局变量来保存游戏状态实例:



class GameState:

   k = 0

   other_var = 0


def restart():

   global state

   state = GameState()


def change():

   ...

   state.k += 5


请注意,如果您正确执行此操作,您就为“免费”获得一种保存和恢复游戏的方式奠定了基础,可以拥有多个玩家,每个玩家同时具有单独的状态,等等。


查看完整回答
反对 回复 2023-10-25
?
繁花如伊

TA贡献2012条经验 获得超12个赞

如果我理解正确的话,您不希望游戏重置,而是希望在重新启动后继续。为此,您必须将变量保存到文件中。当代码运行时,所有变量及其值都存储在设备的 RAM 中。当代码停止运行时,它们将从 RAM 中删除。要在代码停止后存储变量,您必须将它们存储到硬盘上。为此,您只需创建一个文件并将所有内容放入其中即可。

对于变量,您应该使用 SQLite3(数据库)或 JSON。如果你只存储一些变量 JSON 应该这样做,但如果你在游戏中存储大量变量(大量我的意思是例如世界中存在的每个实体和每个箱子等等),你应该使用数据库。


查看完整回答
反对 回复 2023-10-25
  • 2 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信