diff --git a/PLAYER.py b/PLAYER.py index c3a6530..d5e6847 100644 --- a/PLAYER.py +++ b/PLAYER.py @@ -26,6 +26,7 @@ def __init__(self, pos): self.rect.x = self.real_x self.rect.y = self.real_y SETTINGS.player_rect = self.rect + self.last_pos_tile = None self.mouse = pygame.mouse self.sensitivity = SETTINGS.sensitivity @@ -284,6 +285,36 @@ def update(self, x, y): SETTINGS.player_map_pos = [int(self.rect.centerx / SETTINGS.tile_size), int(self.rect.centery / SETTINGS.tile_size)] + #check if player is out of bounds and teleport them back. + generator_check_list = [x for x in SETTINGS.walkable_area if x.map_pos == SETTINGS.player_map_pos] + if generator_check_list: + pos = generator_check_list[0].map_pos + else: + pos = [] + + check_list = SETTINGS.walkable_area + SETTINGS.all_solid_tiles + out_generator = [x for x in check_list if x.map_pos == SETTINGS.player_map_pos] + if out_generator: + pos2 = out_generator[0].map_pos + else: + pos2 = [] + + + if SETTINGS.player_map_pos == pos: + SETTINGS.last_player_map_pos = SETTINGS.player_map_pos + self.last_pos_tile = generator_check_list[0] + + elif SETTINGS.player_map_pos != pos2 and SETTINGS.last_player_map_pos: + if self.last_pos_tile: + SETTINGS.player_map_pos = SETTINGS.last_player_map_pos + self.rect.center = self.last_pos_tile.rect.center + SETTINGS.player_rect = self.rect + self.real_x = self.rect.x + self.real_y = self.rect.y + + + + def draw(self, canvas): pointer = self.direction(0, 10) p1 = pointer[0] + self.rect.center[0] diff --git a/SETTINGS.py b/SETTINGS.py index c1f7a55..72fd563 100644 --- a/SETTINGS.py +++ b/SETTINGS.py @@ -105,6 +105,7 @@ 'cspeed' : 0, } player = None +last_player_map_pos = None '''Texture settings''' diff --git a/data/customLevels.dat b/data/customLevels.dat index 8790512..de542e0 100644 Binary files a/data/customLevels.dat and b/data/customLevels.dat differ diff --git a/data/settings.dat b/data/settings.dat index 4e47143..d6d2834 100644 Binary files a/data/settings.dat and b/data/settings.dat differ diff --git a/data/statistics.dat b/data/statistics.dat index fc42414..6816817 100644 Binary files a/data/statistics.dat and b/data/statistics.dat differ