2024-09-28 05:23:04 发布
网友
在游戏中,我创建了一些全局变量,当某个动作发生时,这些变量的值会发生变化。当我重新启动游戏时,我希望将它们的值重新设置为初始值
K= 0 def change(): #change global variable value global K K +=5 def restart(): #restarts game
我可以通过使全局变量值等于其原始值来更改它
K = 0
有没有其他方法可以做到这一点,当有很多变量时,我不能使它们成为局部变量
谢谢你的帮助
如果我理解正确,你不希望游戏复位,而是希望在重新启动后继续。为此,必须将变量保存到文件中。代码运行时,所有变量及其值都存储在设备的RAM中。当代码停止运行时,它们将从RAM中删除。要在代码停止后存储变量,必须将它们存储到硬盘中。为此,您只需创建一个文件并将所有内容放在其中
对于变量,应该使用SQLite3(数据库)或JSON。如果你只存储一些变量,JSON应该这样做,但是如果你在游戏中存储了大量变量(我指的是大量变量,例如世界上存在的每个实体和每个箱子等等),你应该使用数据库
这里只有很少的示例代码可以给你一个例子,但从我所能得到的信息来看,你正在尝试做的事情,是时候继续使用一些面向对象的方法了
无需求助于任何更复杂的方法,您可以使用一个对象作为跨多个函数访问所需变量的命名空间
在重新启动游戏时,只需创建一个新实例,其中包含为状态保持对象设置的所有初始值
由于Python的工作方式,您甚至可以将默认值设置为类属性,并且每次更新这些属性时,更新只会影响与正在进行的游戏状态相对应的实例。通过这样做,您可以使用一个全局变量,保存游戏状态实例:
class GameState: k = 0 other_var = 0 def restart(): global state state = GameState() def change(): ... state.k += 5
请注意,如果您这样做是正确的,那么您就可以获得“免费”的方式来保存和恢复您的游戏,同时拥有多个玩家,每个玩家都有一个单独的状态,等等
如果我理解正确,你不希望游戏复位,而是希望在重新启动后继续。为此,必须将变量保存到文件中。代码运行时,所有变量及其值都存储在设备的RAM中。当代码停止运行时,它们将从RAM中删除。要在代码停止后存储变量,必须将它们存储到硬盘中。为此,您只需创建一个文件并将所有内容放在其中
对于变量,应该使用SQLite3(数据库)或JSON。如果你只存储一些变量,JSON应该这样做,但是如果你在游戏中存储了大量变量(我指的是大量变量,例如世界上存在的每个实体和每个箱子等等),你应该使用数据库
这里只有很少的示例代码可以给你一个例子,但从我所能得到的信息来看,你正在尝试做的事情,是时候继续使用一些面向对象的方法了
无需求助于任何更复杂的方法,您可以使用一个对象作为跨多个函数访问所需变量的命名空间
在重新启动游戏时,只需创建一个新实例,其中包含为状态保持对象设置的所有初始值
由于Python的工作方式,您甚至可以将默认值设置为类属性,并且每次更新这些属性时,更新只会影响与正在进行的游戏状态相对应的实例。通过这样做,您可以使用一个全局变量,保存游戏状态实例:
请注意,如果您这样做是正确的,那么您就可以获得“免费”的方式来保存和恢复您的游戏,同时拥有多个玩家,每个玩家都有一个单独的状态,等等
相关问题 更多 >
编程相关推荐