def game_loop(self): """Main loop. """ pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) score = 0 high_score = 0 maze = Maze(self.maze_tiles, HORIZONTAL_TILES, VERTICAL_TILES) maze.load_level(maze.MAZE) pac = PacMan(104, 204, self.pacman_tiles) delta = (0, 0) while True: event = pygame.event.poll() if event.type == pygame.QUIT: sys.exit(0) if event.type == pygame.KEYUP: if event.key == pygame.K_ESCAPE: sys.exit(0) pressed = pygame.key.get_pressed() if pressed[pygame.K_LEFT]: delta = (-1, 0) elif pressed[pygame.K_RIGHT]: delta = (1, 0) elif pressed[pygame.K_DOWN]: delta = (0, 1) elif pressed[pygame.K_UP]: delta = (0, -1) x, y = self.screen_to_tile(pac.x, pac.y) if maze[(x, y)] > 0: score += 10 maze[(x, y)] = 0 if score > high_score: high_score = score if self.legal_move(maze, pac, delta): pac.delta = delta elif not self.legal_move(maze, pac, pac.delta): pac.delta = (0, 0) pac.move() maze.draw() pac.draw() self.write_message(3, 0, "1UP") self.write_message(4, 1, str(score)) self.write_message(9, 0, "HIGH SCORE") self.write_message(10, 1, str(score)) pygame.display.flip()