修复无存档时没有初始化game_info的bug

This commit is contained in:
星外之神 2022-07-27 09:18:13 +08:00
parent b4a3fa993d
commit 04f4b65d42
2 changed files with 10 additions and 9 deletions

View File

@ -658,11 +658,12 @@ CHOOSE = 'choose'
PLAY = 'play'
# 记录本地存储文件初始值
INIT_USERDATA = { LEVEL_NUM:1,
LITTLEGAME_NUM:1,
LEVEL_COMPLETIONS:0,
LITTLEGAME_COMPLETIONS:0,
}
INIT_USERDATA = {
LEVEL_NUM:1,
LITTLEGAME_NUM:1,
LEVEL_COMPLETIONS:0,
LITTLEGAME_COMPLETIONS:0,
}
# 无穷大常量
INF = float("inf") # python传递字符串性能较低故在这里对inf声明一次以后仅需调用即可
INF = float("inf") # python传递字符串性能较低故在这里对inf声明一次以后仅需调用即可,虽然真正的用处是可以自动补全(

View File

@ -46,7 +46,6 @@ class Control():
with open(c.USERDATA_PATH) as f:
userdata = json.load(f)
# 导入数据
self.game_info = {c.CURRENT_TIME:0} # 时间信息需要新建
self.game_info.update(userdata)
except FileNotFoundError:
# 不存在存档即新建
@ -55,8 +54,9 @@ class Control():
with open(c.USERDATA_PATH, "w") as f:
savedata = json.dumps(c.INIT_USERDATA, sort_keys=True, indent=4)
f.write(savedata)
self.game_info = userdata
self.game_info[c.CURRENT_TIME] = 0 # 时间信息需要新建
self.game_info = c.INIT_USERDATA.copy() # 内部全是不可变对象,浅拷贝即可
# 存档内不包含即时游戏时间信息,需要新建
self.game_info[c.CURRENT_TIME] = 0
def setup_states(self, state_dict, start_state):