def game_loop(self): pygame.mouse.set_visible(0) while True: pygame.time.Clock().tick(self.FPS) events = pygame.event.get() for event in events: if event.type == QUIT or event.type == KEYDOWN and event.key == K_ESCAPE: self.state = 'quit' return elif self.state == 'game': if event.type == KEYDOWN: if event.key == K_UP: self.up = True if event.type == KEYUP: if event.key == K_UP: self.up = False elif self.state == 'gameover': if event.type == KEYUP: if event.key == K_RETURN: if self.nameinput != None: name = self.nameinput.value if name == '': name = 'no name' Score.update_highscore(name, self.level.get_score(), self.hiscores) self.state = 'menu' return # Update level self.level.update(self.up) self.level.draw() self.text = self.font.render("$" + str(self.level.get_score()), 1, self.DARK_GREY) self.surface.blit(self.text, (10, 10)) # If player is busted the level is ended if self.level.player.state == 'busted': if Score.is_highscore(self.level.get_score(), self.hiscores): self.message = "NEW HISCORE!" if self.nameinput == None: self.nameinput = eztext.Input(x = 400, y = 440, maxlength = 6, color = self.GREEN, prompt = 'Enter name: ') self.nameinput.update(events) self.nameinput.draw(self.surface) else: self.message = "You did not collect enough cash, try again!" self.show_final_score() self.up = False self.state = 'gameover' # Flip the buffer to show the updates pygame.display.flip()