示例#1
0
 def loadLevel(self):
     terrain, self.startpos = self.maps.load(self.level)
     self.terrain = pygame.sprite.Group(*terrain)
     self.ball = Ball(*self.startpos)
     self.score = 0
     self.stopwatch.restart()
     if self.level != "test":
         highscore = self.progress[self.level]["score"]
         bestTime = self.progress[self.level]["time"]
     else:
         highscore, bestTime = None, None
     self.highscoreText = str(highscore) if highscore != None else "---"
     if bestTime != None:
         self.bestTimeText = Stopwatch.secToMin(bestTime)
     else:
         self.bestTimeText = "---"
示例#2
0
 def initLevelMenu(self):
     top = 60
     left = 130
     entries = []
     actions = []
     for i, level in enumerate(self.maps.levels):
         prevLevel = self.maps.levels[i - 1]
         if i > 0 and self.progress[prevLevel]["score"] == None:
             entries.append("Level %s    Locked" % level)
             actions.append(None)
             continue
         elif self.progress[level]["score"] == None:
             entries.append("Level %s    Unlocked" % level)
         else:
             entries.append("Level %s    Highscore: %d    Best time: %s" %
                 (level, self.progress[level]["score"],
                     Stopwatch.secToMin(self.progress[level]["time"])))
         # Locally scope level
         actions.append(lambda level=level: self.playLevel(level))
     entries += ["Return to main menu", "Clear progress"]
     actions += [self.doMainMenu, self.progress.clear]
     self.levelMenu = Menu(left, top, entries, actions)