Add final room

This commit is contained in:
grisel-davy 2020-05-04 22:58:16 -04:00
parent b950e4f663
commit 6430830630
2 changed files with 18 additions and 26 deletions

View file

@ -150,7 +150,6 @@ class Player():
if keystate[self.key_left]:
self.speed[0] -= acceleration
if self.speed[0] < -cap_speed: self.speed[0] = -cap_speed
print("PLOP")
if keystate[self.key_right]:
self.speed[0] += acceleration

View file

@ -54,6 +54,8 @@ def map_generator(n):
"""
room_side = 1000
change_side = {'T':'D','R':'L','D':'T','L':'R'}
deplacements = {'T':[0,-1],'R':[1,0],'D':[0,1],'L':[-1,0]}
unique_filenames,assembly,back_path = fetch_rooms('./maps/rooms/')
#assembly = {'T/R/D/L':[(label1,path1),(label2,path2),...]}
@ -72,7 +74,8 @@ def map_generator(n):
counter = 0
while counter < n:
retry = 0
while counter <= n:
# select the next direction, can't be the direction of arrival
if len(current_label) > 1:
@ -82,26 +85,17 @@ def map_generator(n):
# Select the next room
next_label,next_room = random.choice(assembly[dir_next])
asset = pygame.image.load(next_room).convert_alpha()
if counter < n: # The next room is not the final room.
next_label,next_room = random.choice(assembly[dir_next])
asset = pygame.image.load(next_room).convert_alpha()
else:
# The next room is the finale room.
asset = unique_rooms[change_side[dir_next]]
mask = pygame.mask.from_surface(asset)
# Compute the position of the next tile
if dir_next == 'T':
next_position = [position[0],position[1]-room_side]
dir_from = 'D'
if dir_next == 'R':
next_position = [position[0]+room_side,position[1]]
dir_from = 'L'
if dir_next == 'D':
next_position = [position[0],position[1]+room_side]
dir_from = 'T'
if dir_next == 'L':
next_position = [position[0]-room_side,position[1]]
dir_from = 'R'
next_position = [position[0]+room_side*deplacements[dir_next][0],position[1]+room_side*deplacements[dir_next][1]]
dir_from = change_side[dir_next]
# Check if we are not overwriting an existing room and store the current one.
if next_position not in positions:
@ -114,16 +108,15 @@ def map_generator(n):
current_label = next_label
position = next_position
positions.append(position)
else:
retry +=1
if retry > 10:
raise ValueError("Too much retries")
background = pygame.image.load(back_path).convert()
if not check_map(carte):
raise ValueError("Invalid Map.")
else:
print("Map checked and valid!")
for room in carte:
print(room)
return(carte,(int(room_side/2),int(room_side/2)),background)