From 9ded9786a38f356fdbadc3a7dc6cf68d935dbade Mon Sep 17 00:00:00 2001 From: Fred Z Date: Fri, 23 Mar 2018 11:11:57 +0100 Subject: [PATCH] Adds movement to the player Keep message loggin on console for dev, stop printing map on it TODO Just changing the 2 tiles impacted by the move, not the whole maze --- main.py | 52 ++++++++++++++++++++++++++++++---------------------- map.py | 2 +- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/main.py b/main.py index 7818538..b1844ed 100644 --- a/main.py +++ b/main.py @@ -34,6 +34,27 @@ MAZE_SIZE_CEL = MAZE_SIZE GAME_KEYS = [K_UP, K_DOWN, K_RIGHT, K_LEFT] WINDOW_SIZE_PX = CELL_SIZE_PX * MAZE_SIZE_CEL +def maze_draw(): + """ Take a map string and generate a graphic maze """ + back_tiles = [] + for cell, element in enumerate(MAP_GAME.map_print().replace('\n', '')): + key = [key for (key, val) in MAZE_ELEMENTS.items() if val == element][0] + + if key in MAZE_ELEMENTS_TILES: + back_tiles.append( + pygame.image.load(MAZE_ELEMENTS_TILES[key]).convert_alpha() + ) + + else: + back_tiles.append(pygame.image.load(UNKNOWN_TILE).convert()) + + x = (cell % MAZE_SIZE_CEL) * CELL_SIZE_PX + y = (cell // MAZE_SIZE_CEL) * CELL_SIZE_PX + WINDOW.blit(back_tiles[cell], (x, y)) + + # Refresh + pygame.display.flip() + pygame.init() WINDOW = pygame.display.set_mode( @@ -46,28 +67,11 @@ WINDOW.blit(BACKGROUND, (0, 0)) MAP_GAME = Map(MAP_FILE) # Draw maze -back_tiles = [] -for cell, element in enumerate(MAP_GAME.map_print().replace('\n', '')): - key = [key for (key, val) in MAZE_ELEMENTS.items() if val == element][0] +maze_draw() - if key in MAZE_ELEMENTS_TILES: - back_tiles.append( - pygame.image.load(MAZE_ELEMENTS_TILES[key]).convert_alpha() - ) - - else: - back_tiles.append(pygame.image.load(UNKNOWN_TILE).convert()) - - x = (cell % MAZE_SIZE_CEL) * CELL_SIZE_PX - y = (cell // MAZE_SIZE_CEL) * CELL_SIZE_PX - WINDOW.blit(back_tiles[cell], (x, y)) - -# Refresh -pygame.display.flip() - -system('clear') +# system('clear') print(MAP_GAME.status_message) -MAP_GAME.map_print() +# MAP_GAME.map_print() # Game loop while MAP_GAME.status: @@ -79,9 +83,13 @@ while MAP_GAME.status: if event.key in GAME_KEYS: MAP_GAME.move_to(event.key) + else: MAP_GAME.status = False - system('clear') + # system('clear') print("status_message:{}".format(MAP_GAME.status_message)) - MAP_GAME.map_print() + # MAP_GAME.map_print() + + # Draw maze + maze_draw() diff --git a/map.py b/map.py index 04afed9..b3832f6 100644 --- a/map.py +++ b/map.py @@ -100,7 +100,7 @@ class Map: def map_print(self): """ Affiche la carte avec la position de jeu courante """ - print(self._map_in_a_string) + # print(self._map_in_a_string) return self._map_in_a_string def move_to(self, pressed_key):