def main(self): self.had_text = bool(self.text) while not self.done: self.events() self.draw() self.update() if not self.options_lock: pygame.mixer.music.fadeout(1000) black_out(self.display, 5)
def main(self): self.draw() fade_in(self.display, 3) while not self.done: self.events() self.draw() self.update() if not (self.retry or self.exit): black_out(self.display, 3) return self.retry, self.exit
def main(self): self.fade_in() joystick.Reset() while not self.done: self.events() self.draw() self.update() black_out(self.display, 5) joystick.Reset() pygame.mixer.music.fadeout(500) return self.map[self.selected_point].mission, self.selected_point
def main(self): pygame.event.set_grab(True) joystick.Reset() while not self.done: self.events() self.draw() self.update() pygame.mixer.music.fadeout(1000) black_out(self.Display, 5) joystick.Reset() pygame.event.set_grab(False) return self.profile
def main(self): point = None retry = False mission = None while True: if not retry: Map = maps.Map(self.images, self.Display, self.profile, self.profile_selected, point) mission, point = Map.main() old_mission = mission if Map.toMenu: background = self.Display.copy() self.menu() point = None continue play = game.Game(self.display, self.Display, self.images, mission, self.profile, self.profile_selected, retry) score, mode, acc, maxcombo, im_back = play.main() if play.toMenu: self.menu() point = None continue try: self.acc_per = acc.count(True) / len(acc) except ZeroDivisionError: self.acc_per = 0 for p in self.profile["map"][self.profile["planet"].name]: if p.mission == mission: if mode == "lost": p.lost += 1 break lw = lose_win.LoseWin( self.Display, self.images, (self.profile["money"], self.profile["money"] + score, mission().bonus / (p.lost + 1), mission().bonus, acc, p.lost + 1, maxcombo), mode=mode) self.keepGoing(lw) not_finished = False ach = [] if im_back: ach.append("im_back") # I'm Back Achievement if mode == "won": play.victory() self.profile["addNewStore"] -= 1 self.profile["money"] += round(mission().bonus * self.acc_per) self.profile["money"] += round(mission().bonus / (p.lost + 1)) if acc.count(True) >= ((len(acc) / 4) * 3) and acc: ach.append("archer") if maxcombo > 4: ach.append("combo5") if maxcombo > 9: ach.append("combo10") if maxcombo > 14: ach.append("combo15") if maxcombo > 19: ach.append("combo20") for name in mission().unlocks_planets: for p in planetsmoons: if p.name == name: self.profile["unlocked_planets"].append(name) congrats(self.Display, self.images, "planet", p) for a in ach: if ACHIEVEMENTS[a][0] in self.profile["achievements"]: continue congrats(self.Display, self.images, "ach", ACHIEVEMENTS[a], self.profile) r = False while not r: r = stores.confirmStores(self.profile, self.Display, self.images) self.profile = r saves.save_data(self.profile_selected, self.profile) del play retry = lw.retry if lw.exit: black_out(self.Display, 2) pygame.quit() sys.exit()
def confirmExit(display, profile, num): button_selected = 0 buttons = ["Save + Exit", "Exit", "Cancel"] rect = pygame.Rect(0, 0, 150, 50) points = [(150, 400), (400, 400), (650, 400)] rect1, rect2, rect3 = rect.copy(), rect.copy(), rect.copy() rect1.midleft = points[0] rect2.center = points[1] rect3.midright = points[2] rects = [rect1, rect2, rect3] old_display = display.copy() surf2 = old_display.copy() surf2.fill((30, 30, 30)) surf2.set_alpha(150) old_display.blit(surf2, (0, 0)) while True: click = False for event in pygame.event.get(): mpos = pygame.mouse.get_pos() joystick.Update(event) if not hasattr(event, 'key'): event.key = None if event.type == pygame.KEYDOWN or joystick.WasEvent(): if event.key == pygame.K_F2 or joystick.JustPressedLB(): screenshot.capture(num, display) if event.type == pygame.MOUSEMOTION: for rect in rects: if rect.collidepoint(mpos): button_selected = rects.index(rect) break if event.type == pygame.MOUSEBUTTONDOWN: for rect in rects: if rect.collidepoint(mpos): click = True if event.type == pygame.KEYUP or joystick.WasEvent(): if event.key == pygame.K_ESCAPE or joystick.BackEvent(): return if event.key == pygame.K_LEFT or joystick.JustWentLeft(): button_selected -= 1 if event.key == pygame.K_RIGHT or joystick.JustWentRight(): button_selected += 1 if button_selected < 0: button_selected = 0 if button_selected > 2: button_selected = 2 if event.key == pygame.K_RETURN or joystick.JustPressedA(): click = True display.blit(old_display, (0, 0)) retro_text((400, 302), display, 30, "Exit?", anchor="midbottom", bold=True, color=(0, 0, 0)) retro_text((400, 300), display, 30, "Exit?", anchor="midbottom", bold=True) for n, rect in enumerate(rects): color = (75, 75, 75) tcolor = (255, 255, 255) if n == button_selected: color = (50, 50, 50) tcolor = (255, 255, 255) pygame.draw.rect(display, (0, 0, 0), rect.move(2, 2)) pygame.draw.rect(display, color, rect) retro_text(rect.move(0, 2).center, display, 12, buttons[n], color=(0, 0, 0), anchor="center") retro_text(rect.center, display, 12, buttons[n], color=tcolor, anchor="center") pygame.display.update() clock.tick(10) if click: name = buttons[button_selected] if name == "Cancel": return if name == "Save + Exit": saves.save_data(num, profile) pygame.quit() sys.exit() if name == "Exit": black_out(display, 5) pygame.quit() sys.exit()
def events(self): for event in pygame.event.get(): joystick.Update(event) click = False if event.type == pygame.QUIT: confirmExit(self.display, self.profile, self.profile_number) self.pause_time = True if event.type == pygame.MOUSEBUTTONDOWN: if event.button in (1, 3): sel = self.selected_point rect = pygame.Rect((0, 0), (220, 50)) rect.midtop = self.map[sel].pos[ 0], self.map[sel].pos[1] + 35 backrect = pygame.Rect(0, 0, 32, 32) if rect.collidepoint(pygame.mouse.get_pos()): click = True elif backrect.collidepoint(pygame.mouse.get_pos()): self.toMenu = True self.done = True self.click = True if not hasattr(event, "key"): event.key = None if event.type == pygame.KEYDOWN or joystick.WasEvent(): if event.key == pygame.K_F2 or joystick.JustPressedLB(): screenshot.capture(self.profile_number, self.display) self.pause_time = True if event.key == pygame.K_RETURN or event.key == pygame.K_SPACE or joystick.GoEvent( ): click = True if event.key == pygame.K_ESCAPE or joystick.BackEvent(): tmm = pause_menu(self.display, self.images, self.profile, self.profile_number) self.pause_time = True if tmm: self.toMenu = True self.done = True if event.type == pygame.KEYUP or joystick.WasEvent(): tabbed = False sel = self.selected_point if (event.key == pygame.K_TAB ) and not self.map[self.selected_point].alien_flag: sel += 1 tabbed = True FB = self.GoForwardOrBack(event) if (FB): sel += 1 if (FB == False): sel -= 1 # if (event.key == pygame.K_LEFT or joystick.JustWentLeft()): # sel -= 1 # if (event.key == pygame.K_RIGHT or joystick.JustWentRight()) and not self.map[self.selected_point].alien_flag: # sel += 1 if (event.key == pygame.K_END or joystick.JustPressedRT()): self.waypoints = [] x = 0 for x in range(self.selected_point, len(self.map)): self.waypoints.append(x) if self.map[x].alien_flag: break sel = x if self.waypoints: self.target_pos = self.get_point(self.waypoints[0]) self.changed = True if (event.key == pygame.K_HOME or joystick.JustPressedLT()): self.waypoints = [] x = 0 for x in reversed(range(self.selected_point)): self.waypoints.append(x) if self.map[x].alien_flag: break sel = x if self.waypoints: self.target_pos = self.get_point(self.waypoints[0]) self.changed = True self.selected_point = sel if self.target_pos != self.avatar_pos: self.waypoints.append(sel) if self.selected_point < 0: self.selected_point = 0 yes = False if self.waypoints: if self.waypoints[-1] >= len(self.map): yes = True if self.selected_point >= len(self.map) or yes: if yes: self.waypoints[-1] = len(self.map) - 1 if tabbed and not yes: self.selected_point = 0 self.waypoints += list(reversed(range(len(self.map)))) for x in reversed(range(len(self.map))): if x > 0: if self.map[x - 1].alien_flag: break self.waypoints.append(x) else: self.selected_point = len(self.map) - 1 if self.target_pos == self.avatar_pos and click: t = self.map[self.selected_point].type if t == "spaceport": spacemap = SpaceMap(self.images, self.display, self.profile, self.profile_number, focus=self.planet.name) black_out(self.display, 5) self.profile = spacemap.main() self.__init__(self.images, self.display, self.profile, self.profile_number) self.fade_in() if t == "mission": self.done = True if t == "store": sel1 = self.selected_point store = StoreUI(self.display, self.images, self.profile, self.profile_number, self.map[self.selected_point]) if store.main(): self.waypoints = [] self.target_pos = self.get_point(0) self.changed = True self.avatar_pos = self.get_point(0) self.set_velocity() self.selected_point = 0 background = self.display.copy() self.draw() fade_in(self.display, 2, background)