From a323c38ba00f3ad2c24f6972e27aadafdd060277 Mon Sep 17 00:00:00 2001 From: wszqkzqk Date: Sat, 23 Jul 2022 14:49:54 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8DWindows=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/constants.py | 7 +++++++ source/state/level.py | 4 ++-- source/tool.py | 8 ++++---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/source/constants.py b/source/constants.py index ea6f666..2752904 100755 --- a/source/constants.py +++ b/source/constants.py @@ -1,3 +1,10 @@ +import os +# 用户数据存储路径 +if os.name == 'nt': + USERDATA_PATH = os.path.expandvars(os.path.join("%APPDATA%", "wszqkzqk.dev", "pypvz", "userdata.json")) +else: + USERDATA_PATH = os.path.expanduser(os.path.join("~", ".config", "wszqkzqk.dev", "pypvz", "userdata.json")) + # 游戏起始关卡 START_LEVEL_NUM = 1 START_LITTLE_GAME_NUM = 1 diff --git a/source/state/level.py b/source/state/level.py index 433a26c..bc0e406 100644 --- a/source/state/level.py +++ b/source/state/level.py @@ -60,7 +60,7 @@ class Level(tool.State): pg.mixer.music.stop() pg.mixer.music.load(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))) ,"resources", "music", "intro.opus")) pg.mixer.music.play(-1, 0) - with open(os.path.expanduser(os.path.join("~", ".config", "wszqkzqk.dev", "pypvz", "userdata.json")), "w") as f: + with open(c.USERDATA_PATH, "w") as f: userdata = {} for i in self.game_info: if i in c.USERDATA_KEYS: @@ -1426,7 +1426,7 @@ class Level(tool.State): self.done = True # 播放胜利音效 pg.mixer.Sound(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))) ,"resources", "sound", "win.ogg")).play() - with open(os.path.expanduser(os.path.join("~", ".config", "wszqkzqk.dev", "pypvz", "userdata.json")), "w") as f: + with open(c.USERDATA_PATH, "w") as f: userdata = {} for i in self.game_info: if i in c.USERDATA_KEYS: diff --git a/source/tool.py b/source/tool.py index 61e18d4..d1f4b2c 100755 --- a/source/tool.py +++ b/source/tool.py @@ -44,7 +44,7 @@ class Control(): self.state = None try: # 存在存档即导入 - with open(os.path.expanduser(os.path.join("~", ".config", "wszqkzqk.dev", "pypvz", "userdata.json"))) as f: + with open(c.USERDATA_PATH) as f: userdata = json.load(f) # 导入数据 self.game_info = {c.CURRENT_TIME:0} # 时间信息需要新建 @@ -56,9 +56,9 @@ class Control(): c.LEVEL_COMPLETIONS:c.START_LEVEL_COMPLETIONS, c.LITTLEGAME_COMPLETIONS:c.START_LITTLEGAME_COMPLETIONS } - if not os.path.exists(os.path.expanduser(os.path.join("~", ".config", "wszqkzqk.dev", "pypvz"))): - os.makedirs(os.path.expanduser(os.path.join("~", ".config", "wszqkzqk.dev", "pypvz"))) - with open(os.path.expanduser(os.path.join("~", ".config", "wszqkzqk.dev", "pypvz", "userdata.json")), "w") as f: + if not os.path.exists(os.path.dirname(c.USERDATA_PATH)): + os.makedirs(os.path.dirname(c.USERDATA_PATH)) + with open(c.USERDATA_PATH, "w") as f: savedata = json.dumps(userdata, sort_keys=True, indent=4) f.write(savedata) self.game_info = userdata