コード例 #1
0
 def save(self, name):
     k = "./save/" + name + ".eks"
     with open(res_path(k), "w") as f:
         j = json.loads('{}')
         j['scene'] = gk.scene
         j['paras'] = gk.paras
         j['time'] = time.time()
         f.write(json.dumps(j))
コード例 #2
0
 def load(self, name):
     if name == "0":
         gk.scene = "1-1"
         gk.paras = gk.default_para()
     else:
         k = "./save/" + name + ".eks"
         with open(res_path(k), "r") as f:
             j = json.loads(f.read())
             gk.scene = j['scene']
             gk.paras = j['paras']
         self.refresh()
コード例 #3
0
 def pick(self, i):
     self.picked = i
     self.dia.close()
     if self.loading:
         try:
             fn = res_path("save/" + str(i) + ".eks")
             open(fn, "r")
             self.loading = False
             # print("读档"+str(i))
             self.startGame(str(i))
         except FileNotFoundError:
             m = qt.QMessageBox(self.main)
             m.critical(self.main, "警告!", "不可读取空存档!")
     elif self.saving:
         self.kernel.save(str(i))
コード例 #4
0
 def loadScene(self):
     if gk.scene == GAME_OVER:
         return GAME_OVER, []
     else:
         try:
             fn = os.path.join("story", gk.scene + ".txt")
             with open(res_path(fn), "r", encoding="utf8") as f:
                 scenetext = f.read()
             scenetext = "    " + scenetext
             scenetext = scenetext.replace("\n", "\n    ")
             choice = self.getChoice()
             # open_info_entry(gk.scene)
             return scenetext, choice
         except FileNotFoundError:
             scenetext = "抱歉,这儿还没写呢。请先存档。"
             return scenetext, [choice_end()]
コード例 #5
0
 def loadGame(self):
     havesave = False
     for i in range(1, 31):
         try:
             fn = res_path("save/" + str(i) + ".eks")
             open(fn, "r")
             havesave = True
             break
         except FileNotFoundError:
             pass
     if havesave:
         self.saving = False
         self.loading = True
         self.pickSave()
     else:
         m = qt.QMessageBox(self.main)
         m.critical(self.main, "警告!", "当前无可用存档!")
コード例 #6
0
 def setMenu(self):
     self.main.setWindowIcon(gui.QIcon(res_path("icon.ico")))
     self.main.setWindowTitle("翡翠骑士 v" + VERSION)
     menu = self.main.menuBar()
     new = menu.addAction("新的游戏")
     new.triggered.connect(self.newGame)
     save = menu.addAction("保存进度")
     save.triggered.connect(self.saveGame)
     load = menu.addAction("读取存档")
     load.triggered.connect(self.loadGame)
     exit = menu.addAction("退出游戏")
     exit.triggered.connect(self.exitGame)
     # exit = menu.addAction("刷新存档")
     # exit.triggered.connect(self.refresh)
     if DEBUG:
         exit = menu.addAction("打印变量")
         exit.triggered.connect(self.debug)
     exit = menu.addAction("关于")
     exit.triggered.connect(self.about)
コード例 #7
0
 def showSave(self):
     saves = qt.QDialog()
     saves.setWindowTitle("当前存档")
     self.dia = saves
     saves_layout = qt.QHBoxLayout()
     v_layout = qt.QVBoxLayout()
     for l in range(0, 3):
         for i in range(1, 11):
             k = i + l * 10
             btn = qt.QPushButton()
             fn = "save/" + str(k) + ".eks"
             fn = res_path(fn)
             try:
                 with open(fn, "r") as f:
                     j = json.loads(f.read())
                 sc = j['scene']
                 s = "存档" + str(k) + "\t"
                 try:
                     t = time.localtime(j['time'])
                 except KeyError:
                     j['time'] = os.path.getmtime(fn)
                     t = time.localtime(j['time'])
                 s += time.strftime("%m.%d\t%H:%M", t)
                 s += "\n"
                 if DEBUG:
                     s += sc + "\t"
                 s += self.kernel.getChapter(sc)
                 btn.setText(s)
                 btn.clicked.connect(partial(self.pick, k))
             except FileNotFoundError:
                 s = "空存档"
                 btn.setText(s)
                 btn.clicked.connect(partial(self.pick, k))
             btn.setMinimumSize(140, 36)
             v_layout.addWidget(btn)
         saves_layout.addLayout(v_layout)
         v_layout = qt.QVBoxLayout()
     saves.setLayout(saves_layout)
     saves.show()
     saves.exec_()