diff --git a/triple-dungeon/main.py b/triple-dungeon/main.py index 354fd97..962072e 100644 --- a/triple-dungeon/main.py +++ b/triple-dungeon/main.py @@ -61,10 +61,11 @@ class Game(arcade.Window): # Create the dungeon dungeon = Dungeon() - self.floor_list, self.wall_list = dungeon.get_lists() + self.floor_list = dungeon.floor_list + self.wall_list = dungeon.wall_list - # Create monsters + # This needs to be updated to comply with the new mobs.py code #self.enemy_list.append(Enemy("resources/images/monsters/ghost/ghost1.png", 200, 200, 4).get_enemy()) #self.enemy_list.append(Enemy("resources/images/monsters/frog/frog1.png", 200, 1000, 4).get_enemy()) @@ -173,129 +174,5 @@ def main() -> None: arcade.run() -if __name__ == "__main__": - main() - - def setup(self): - """ Set up the game here. Call this function to restart the game. """ - # Create the Sprite lists - - self.player_list = arcade.SpriteList() - self.wall_list = arcade.SpriteList() - self.floor_list = arcade.SpriteList() - self.enemy_list = arcade.SpriteList() - - # Set up the player, specifically placing it at these coordinates. - self.player = Player() - self.player.scale = 4 - self.player.center_x = Config.SCREEN_WIDTH / 2 - self.player.center_y = Config.SCREEN_HEIGHT / 2 - self.player_list.append(self.player) - - - # Create the dungeon - dungeon = Dungeon() - self.floor_list, self.wall_list = dungeon.get_lists() - - - # Create monsters - self.enemy_list.append(Enemy("resources/images/monsters/ghost/ghost1.png", 200, 200, 4).get_enemy()) - self.enemy_list.append(Enemy("resources/images/monsters/frog/frog1.png", 200, 1000, 4).get_enemy()) - - # Create the 'physics engine' - self.physics_engine = arcade.PhysicsEngineSimple(self.player_list, self.wall_list) - - def on_draw(self): - """ Render the screen. """ - - # Clear the screen to the background color - arcade.start_render() - - # Draw our sprites - self.floor_list.draw() - self.player_list.draw() - self.enemy_list.draw() - self.wall_list.draw() - - def on_key_press(self, key, modifiers): - """Called whenever a key is pressed. """ - - if key == arcade.key.UP or key == arcade.key.W: - self.player_list.change_y = Config.PLAYER_MOVEMENT_SPEED - elif key == arcade.key.DOWN or key == arcade.key.S: - self.player_list.change_y = -Config.PLAYER_MOVEMENT_SPEED - elif key == arcade.key.LEFT or key == arcade.key.A: - self.player_list.change_x = -Config.PLAYER_MOVEMENT_SPEED - elif key == arcade.key.RIGHT or key == arcade.key.D: - self.player_list.change_x = Config.PLAYER_MOVEMENT_SPEED - elif key == 65307: - self.close() - - def on_key_release(self, key, modifiers): - """Called when the user releases a key. """ - - if key == arcade.key.UP or key == arcade.key.W: - self.player_list.change_y = 0 - elif key == arcade.key.DOWN or key == arcade.key.S: - self.player_list.change_y = 0 - elif key == arcade.key.LEFT or key == arcade.key.A: - self.player_list.change_x = 0 - elif key == arcade.key.RIGHT or key == arcade.key.D: - self.player_list.change_x = 0 - - def on_update(self, delta_time): - """ Movement and game logic """ - - # Move the player with the physics engine - self.physics_engine.update() - - self.player_list.update_animation() - changed = False # Track if we need to change the viewport - - # Below manages all scrolling mechanics - # Scroll left - left_boundary = self.view_left + Config.LEFT_VIEWPORT_MARGIN - if self.player_list.left < left_boundary: - self.view_left -= left_boundary - self.player_list.left - changed = True - # Scroll right - right_boundary = self.view_left + Config.SCREEN_WIDTH - Config.RIGHT_VIEWPORT_MARGIN - if self.player_list.right > right_boundary: - self.view_left += self.player_list.right - right_boundary - changed = True - # Scroll up - top_boundary = self.view_bottom + Config.SCREEN_HEIGHT - Config.TOP_VIEWPORT_MARGIN - if self.player_list.top > top_boundary: - self.view_bottom += self.player_list.top - top_boundary - changed = True - # Scroll down - bottom_boundary = self.view_bottom + Config.BOTTOM_VIEWPORT_MARGIN - if self.player_list.bottom < bottom_boundary: - self.view_bottom -= bottom_boundary - self.player_list.bottom - changed = True - - if changed: - # Only scroll to integers. Otherwise we end up with pixels that - # don't line up on the screen - self.view_bottom = int(self.view_bottom) - self.view_left = int(self.view_left) - - # Do the scrolling - arcade.set_viewport(self.view_left, - Config.SCREEN_WIDTH + self.view_left, - self.view_bottom, - Config.SCREEN_HEIGHT + self.view_bottom) - - -def main() -> None: - """ - Setups up window classes and runs the game. - """ - - window = Game() - window.setup() - arcade.run() - - if __name__ == "__main__": main() diff --git a/triple-dungeon/map.py b/triple-dungeon/map.py index dbbdae3..17f3a94 100644 --- a/triple-dungeon/map.py +++ b/triple-dungeon/map.py @@ -63,9 +63,6 @@ class Dungeon(object): #self.level_count, self.size = level_count, size #self.levels = [[None for y in range(size)] for x in range(size)] # array[x][y] style access - def get_lists(self): - return (self.floor_list, self.wall_list) - def add_level(self, sprit_list): for x in sprit_list: self.levels.append(x)