def blit(self): if self.mode.changed: nice_print([ "Mode {0!r} changed:".format(self.mode.name), "Blitting on screen\n" ]) self.screen.blit(self.mode.background, (0, 0))
def update(self): self.changed = False for field in self.board.pygame_fields: field.error_update() if field.changed: self.changed = True nice_print(["Field {0} changed".format(field.logicfield.get_coords()), "Blitting on background."]) field.update() self.background.blit(field.image,field.rect)
def update(self): self.changed = False for button in self.buttons: button.update(pygame.mouse.get_pos()) if button.clicked(): self.buttonevents.append(button) if button.changed: nice_print(["Button {0!r} changed:".format(button.name), "Blitting on {0!r}".format(self.name)]) self.background.blit(button.surface,button.rect) self.changed = True button.changed = False
def update(self): self.changed = False for field in self.board.pygame_fields: field.error_update() if field.changed: self.changed = True nice_print([ "Field {0} changed".format(field.logicfield.get_coords()), "Blitting on background." ]) field.update() self.background.blit(field.image, field.rect)
def update(self): self.changed = False for button in self.buttons: button.update(pygame.mouse.get_pos()) if button.clicked(): self.buttonevents.append(button) if button.changed: nice_print([ "Button {0!r} changed:".format(button.name), "Blitting on {0!r}".format(self.name) ]) self.background.blit(button.surface, button.rect) self.changed = True button.changed = False
def mousedown(self,pos): if self.pause and self.board_rect.collidepoint(pos): self.reset() self.background.fill(self.background_color) self.sidebar.update() for field in self.board.pygame_fields: field.changed = True self.changed = True self.pause = False else: field_type = self.board.fieldclick(pos) if field_type == "open": self.score += self.base_score * self.level nice_print(["Score increased to:",str(self.score)]) self.sidebar.mousedown(pos)
def done(self): if self.board.game_over(): timebonus = ((self.timeleft)*(self.level*self.level)*self.base_score)/20/1000 next_round_time= self.timeleft/1000+TIMESAVEMODE['level-time']+.99 next_round = ("timesavemode",self.level+1,self.score+timebonus,next_round_time) close_call = {True: " (good luck..)", False: ""}[self.timeleft < 2000] messages = [ (25,TIMESAVEMODE['message-color'],"Level score: " + str(int(self.score-self.prev_score))), (25,TIMESAVEMODE['message-color'],"Time saved for next round: " + "{0:.1f}".format(self.timeleft/1000) + " seconds"+close_call), (25,TIMESAVEMODE['message-color'],"Timebonus: " + str(int(timebonus))), (45,TIMESAVEMODE['message-important-color'],"Total time next round: " + "{0:.1f}".format(next_round_time)), (45,TIMESAVEMODE['message-important-color'],"Total score: " + str(int(self.score+timebonus))), (20,TIMESAVEMODE['message-color'],"Click to continue to level {0}...".format(self.level+1))] return ("clicktocontinue",next_round,messages) elif self.timeleft < 100: hs = get_highscores(10,"timesave-game") if not hs: max_hs = 0 min_hs = 0 else: max_hs = max(hs) min_hs = min(hs) if self.score > max_hs: highscore_message = (30,TIMESAVEMODE['message-important-color'],"Congratulations! You broke the #1 highscore!") elif self.score > min_hs or len(hs) < 10: highscore_message = (30,TIMESAVEMODE['message-color'],"Your score is in the top 10 highscores!") else: highscore_message = (30,TIMESAVEMODE['message-color'],"You didn't get on the top 10 highscores.") nice_print(["Writing score to file..."]) submit_score(int(self.score),"timesave-game") next_round = ("timesavemode",1,0,TIMESAVEMODE['level-time']+.99) messages = [(30,TIMESAVEMODE['message-color'],"Game over!"), (40,TIMESAVEMODE['message-important-color'],"Final score: " + str(int(self.score))), highscore_message, (20,TIMESAVEMODE['message-color'],"Click to start new game...")] return ("clicktocontinue_scoremode_loss",next_round,messages) else: return False
def done(self): if self.board.game_over(): timebonus = ((self.timeleft)*(self.level*self.level)*self.base_score)/20/1000 next_round = ("scoremode",self.level+1,self.score+timebonus) close_call = {True: " ...Close call!", False: ""}[self.timeleft < 2000] messages = [ (30,SCOREMODE['message-color'],"Level score: " + str(int(self.score-self.prev_score))), (30,SCOREMODE['message-color'],"Time left: " + "{0:.1f}".format(self.timeleft/1000) + " seconds"+close_call), (30,SCOREMODE['message-color'],"Timebonus: " + str(int(timebonus))), (45,SCOREMODE['message-important-color'],"Total score: " + str(int(self.score+timebonus))), (20,SCOREMODE['message-color'],"Click to continue to level {0}...".format(self.level+1))] return ("clicktocontinue",next_round,messages) elif self.timeleft < 100: nice_print(["Writing score to file..."]) hs = get_highscores(10) if not hs: max_hs = 0 min_hs = 0 else: max_hs = max(hs) min_hs = min(hs) if self.score > max_hs: highscore_message = (30,SCOREMODE['message-important-color'],"Congratulations! You broke the #1 highscore!") elif self.score > min_hs or len(hs) < 10: highscore_message = (30,SCOREMODE['message-color'],"Your score is in the top 10 highscores!") else: highscore_message = (30,SCOREMODE['message-color'],"You didn't get on the top 10 highscores.") submit_score(int(self.score)) next_round = ("scoremode",1,0) messages = [(30,SCOREMODE['message-color'],"Game over!"), (40,SCOREMODE['message-important-color'],"Final score: " + str(int(self.score))), highscore_message, (20,SCOREMODE['message-color'],"Click to start new game...") ] return ("clicktocontinue_scoremode_loss",next_round,messages) else: return False
def update(self): if not self.pause: super(Scoremode,self).update() self.timeleft -= self.clock.tick() else: self.clock.tick() self.changed = False self.sidebar.score = self.score self.sidebar.score_box.update("Score: "+str(int(self.sidebar.score))) self.sidebar.time_box.update("Time: "+str(int(self.timeleft/1000))) self.sidebar.level_box.update("Level: "+str(self.level)) if self.sidebar.changed: self.changed = True nice_print(["Sidebar changed:", "Blitting on background."]) self.background.blit(self.sidebar.surface,self.sidebar_rect) self.sidebar.update()
def update(self): self.changed = False for button in self.buttons: button.update(pygame.mouse.get_pos(),self.left_padding) if button.clicked(): self.buttonevents.append(button) if button.changed: nice_print(["Button {0!r} changed:".format(button.name), "Blitting on sidebar"]) self.surface.blit(button.surface,button.rect) self.changed = True button.changed = False if self.score_box.changed: self.changed = True nice_print(["Textbox {0!r} changed:".format(self.score_box.name), "Blitting on sidebar"]) self.reset() self.surface.blit(self.level_box.surface,self.level_box.rect) self.surface.blit(self.time_box.surface,self.time_box.rect) self.surface.blit(self.score_box.surface,self.score_box.rect) if self.time_box.changed: self.changed = True nice_print(["Textbox {0!r} changed:".format(self.time_box.name), "Blitting on sidebar"]) self.reset() self.surface.blit(self.level_box.surface,self.level_box.rect) self.surface.blit(self.score_box.surface,self.score_box.rect) self.surface.blit(self.time_box.surface,self.time_box.rect)
def update(self): self.changed = False for button in self.buttons: button.update(pygame.mouse.get_pos(), self.left_padding) if button.clicked(): self.buttonevents.append(button) if button.changed: nice_print([ "Button {0!r} changed:".format(button.name), "Blitting on sidebar" ]) self.surface.blit(button.surface, button.rect) self.changed = True button.changed = False if self.score_box.changed: self.changed = True nice_print([ "Textbox {0!r} changed:".format(self.score_box.name), "Blitting on sidebar" ]) self.reset() self.surface.blit(self.level_box.surface, self.level_box.rect) self.surface.blit(self.time_box.surface, self.time_box.rect) self.surface.blit(self.score_box.surface, self.score_box.rect) if self.time_box.changed: self.changed = True nice_print([ "Textbox {0!r} changed:".format(self.time_box.name), "Blitting on sidebar" ]) self.reset() self.surface.blit(self.level_box.surface, self.level_box.rect) self.surface.blit(self.score_box.surface, self.score_box.rect) self.surface.blit(self.time_box.surface, self.time_box.rect)
def mousedown(self,pos): for button in self.buttons: br = button.rect.move((self.left_padding,0)) if br.collidepoint(pos): nice_print(["Clicked button {0!r}".format(button.text)]) button.mousedown()
def mousedown(self, pos): for button in self.buttons: br = button.rect.move((self.left_padding, 0)) if br.collidepoint(pos): nice_print(["Clicked button {0!r}".format(button.text)]) button.mousedown()
def mousedown(self,pos): for button in self.buttons: if button.rect.collidepoint(pos): nice_print(["Clicked button {0!r}".format(button.name)]) button.mousedown() return
def handle_button_clicks(self): if self.mode.name == "Scoremode": buttons = self.mode.button_clicked() for name in buttons: if name == "quit": nice_print([ "Game.handle_button_clicks:", "'quit' clicked: exiting" ]) exit() elif name == "restart": self.mode = Scoremode(1, self.screen.get_size()) elif name == "pause": self.mode.set_pause() elif name == "main_menu": self.set_resolution("mainmenu") self.mode = Mainmenu(self.screen.get_size()) if self.mode.name == "Timemode": buttons = self.mode.button_clicked() for name in buttons: if name == "quit": nice_print([ "Game.handle_button_clicks:", "'quit' clicked: exiting" ]) exit() elif name == "restart": self.mode = Timemode(1, self.screen.get_size()) elif name == "pause": self.mode.set_pause() elif name == "main_menu": self.set_resolution("mainmenu") self.mode = Mainmenu(self.screen.get_size()) elif self.mode.name == "Mainmenu": buttons = self.mode.button_clicked() for name in buttons: if name == "scoremode": self.set_resolution("gametime") self.mode = Scoremode(1, self.screen.get_size()) elif name == "timesavemode": self.set_resolution("gametime") self.mode = Timemode(1, self.screen.get_size()) elif name == "highscore": self.mode = SelectHighscore(self.screen.get_size()) elif name == "help": open_help_in_browser() elif name == "exit": nice_print([ "Game.handle_button_clicks:", "'quit' clicked: exiting" ]) exit() elif self.mode.name == "SelectHighscore": buttons = self.mode.button_clicked() for name in buttons: if name == "back_highscore_button": self.mode = Mainmenu(self.screen.get_size()) elif name == "timesave_highscore_button": self.mode = Highscore(self.screen.get_size(), gametype="timesave-game", title_prefix="Timesave ") elif name == "normalgame_highscore_button": self.mode = Highscore(self.screen.get_size(), gametype="normal-game", title_prefix="Normal ")
def blit(self): if self.mode.changed: nice_print(["Mode {0!r} changed:".format(self.mode.name), "Blitting on screen\n"]) self.screen.blit(self.mode.background,(0,0))
def mousedown(self, pos): for button in self.buttons: if button.rect.collidepoint(pos): nice_print(["Clicked button {0!r}".format(button.name)]) button.mousedown() return
def handle_button_clicks(self): if self.mode.name == "Scoremode": buttons = self.mode.button_clicked() for name in buttons: if name == "quit": nice_print(["Game.handle_button_clicks:", "'quit' clicked: exiting"]) exit() elif name == "restart": self.mode = Scoremode(1,self.screen.get_size()) elif name == "pause": self.mode.set_pause() elif name == "main_menu": self.set_resolution("mainmenu") self.mode = Mainmenu(self.screen.get_size()) if self.mode.name == "Timemode": buttons = self.mode.button_clicked() for name in buttons: if name == "quit": nice_print(["Game.handle_button_clicks:", "'quit' clicked: exiting"]) exit() elif name == "restart": self.mode = Timemode(1,self.screen.get_size()) elif name == "pause": self.mode.set_pause() elif name == "main_menu": self.set_resolution("mainmenu") self.mode = Mainmenu(self.screen.get_size()) elif self.mode.name == "Mainmenu": buttons = self.mode.button_clicked() for name in buttons: if name == "scoremode": self.set_resolution("gametime") self.mode = Scoremode(1,self.screen.get_size()) elif name == "timesavemode": self.set_resolution("gametime") self.mode = Timemode(1,self.screen.get_size()) elif name == "highscore": self.mode = SelectHighscore(self.screen.get_size()) elif name == "help": open_help_in_browser() elif name == "exit": nice_print(["Game.handle_button_clicks:", "'quit' clicked: exiting"]) exit() elif self.mode.name == "SelectHighscore": buttons = self.mode.button_clicked() for name in buttons: if name == "back_highscore_button": self.mode = Mainmenu(self.screen.get_size()) elif name == "timesave_highscore_button": self.mode = Highscore(self.screen.get_size(), gametype="timesave-game", title_prefix="Timesave ") elif name == "normalgame_highscore_button": self.mode = Highscore(self.screen.get_size(), gametype="normal-game", title_prefix="Normal ")