def play(algorithm): fps= 7 time = pygame.time.Clock() loop = True game_time = 0 time_count = 1/ fps begin_node = grid_list[0][0] player = Player(begin_node, (200, 0, 0)) objective = grid_list[-1][-1] menu_button_rect = pygame.Rect(10, 440, 100, 30) menu_button = Button(menu_button_rect, text= '< MENU') while loop: window.fill((0, 0, 0)) mx, my = pygame.mouse.get_pos() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() player.set_dir(event) if menu_button.click(event, mx, my): loop = False if player.actual == objective: draw_text('YOU WIN!', window, 30, (200, 200, 200), (window.get_rect().center[0], 440)) else: game_time += time_count algorithm.draw_grid(window, grid_list) menu_button.draw(window) draw_text('Time: ' + str(round(game_time, 2)), window, 25, (200, 200, 200), (570, 440)) player.move(grid_list) player.draw(window) pygame.draw.rect(window, (0, 0, 0), objective.rect, border_radius= 20) pygame.display.update() time.tick(fps)
class Game: def __init__(self): pygame.init() self.window = Window() self.player = Player(3, 3, consts.S_PLAYER_FRONT, self) def main_loop(self): running = True while running: self.window.draw_game() self.player.draw_self() for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_w: self.player.move(0, -1) if event.key == pygame.K_s: self.player.move(0, 1) if event.key == pygame.K_a: self.player.move(-1, 0) if event.key == pygame.K_d: self.player.move(1, 0) pygame.display.flip()