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
This commit is contained in:
Fred Z 2018-03-23 11:11:57 +01:00
parent 9c7ad6ccf0
commit 9ded9786a3
2 changed files with 31 additions and 23 deletions

52
main.py
View File

@ -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()

2
map.py
View File

@ -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):