fixed player placement

This commit is contained in:
Xevion
2020-04-20 16:53:49 -05:00
parent b74b8f87c1
commit b41ef318d6
3 changed files with 27 additions and 23 deletions

View File

@@ -48,7 +48,7 @@ class Enums(Enum):
A simple class used for tracking different simple A simple class used for tracking different simple
""" """
# Play Direction Enums # Player Direction Enums
RIGHT = 0 RIGHT = 0
LEFT = 1 LEFT = 1
UP = 2 UP = 2

View File

@@ -49,28 +49,22 @@ class Game(arcade.Window):
# Create the dungeon # Create the dungeon
self.dungeon = Dungeon(0, 3) self.dungeon = Dungeon(0, 3)
# level = random.choice(self.dungeon.levelList)
level = self.dungeon.levels[1][1]
# Set up the player, specifically placing it at these coordinates. # Set up the player, specifically placing it at these coordinates.
x, y = level.center() self.player = Player()
self.player = Player(center_x=x, center_y=y)
self.player.scale = 1 self.player.scale = 1
level = random.choice(self.dungeon.levelList)
# Debug statement self.player.center_x, self.player.center_y = level.center()
print((level.x, level.y), level.center(), (self.player.center_x, self.player.center_y)) # x, y = level.center()
# Setup viewport # Setup viewport
self.view_bottom = x - (0.5 * Config.SCREEN_WIDTH) self.view_bottom = self.player.center_x - (0.5 * Config.SCREEN_WIDTH) + 300
self.view_left = y - (0.5 * Config.SCREEN_WIDTH) self.view_left = self.player.center_x - (0.5 * Config.SCREEN_WIDTH)
arcade.set_viewport(self.view_left, arcade.set_viewport(self.view_left,
Config.SCREEN_WIDTH + self.view_left, Config.SCREEN_WIDTH + self.view_left,
self.view_bottom, self.view_bottom,
Config.SCREEN_HEIGHT + self.view_bottom) Config.SCREEN_HEIGHT + self.view_bottom)
self.player.center_x, self.player.center_y = x, y
# Create monsters # 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)) # self.enemy_list.append(Enemy("resources/images/monsters/ghost/ghost1.png", 200, 200, 4))
# self.enemy_list.append(Enemy("resources/images/monsters/frog/frog1.png", 200, 1000, 4)) # self.enemy_list.append(Enemy("resources/images/monsters/frog/frog1.png", 200, 1000, 4))
@@ -79,17 +73,22 @@ class Game(arcade.Window):
def on_draw(self): def on_draw(self):
""" Render the screen. """ """ Render the screen. """
try:
# Clear the screen to the background color # Clear the screen to the background color
arcade.start_render() arcade.start_render()
# Draw our sprites # Draw our sprites
self.dungeon.render() self.dungeon.render()
self.player.draw() self.player.draw()
self.enemy_list.draw() self.enemy_list.draw()
x, y = self.view_left + 50, self.view_bottom + 50 self.player.draw_hit_box()
arcade.draw_text(str((self.player.center_x, self.player.center_y)), x, y, arcade.color.WHITE, 15) x, y = self.player.center_x, self.player.center_y
arcade.draw_text(str((x, y)), x - 40, y + 50, arcade.color.WHITE, 15)
except Exception:
import traceback
traceback.print_exc()
def on_key_press(self, key, modifiers): def on_key_press(self, key, modifiers):
"""Called whenever a key is pressed. """ """Called whenever a key is pressed. """

View File

@@ -144,11 +144,16 @@ class Level:
level.wallSprites.append(sprite) level.wallSprites.append(sprite)
# Move everything into correct positions # Move everything into correct positions
level.floorSprites.move(*level.center()) level.floorSprites.move(Config.LEVEL_SIZE * level.x, Config.LEVEL_SIZE * level.y)
level.wallSprites.move(*level.center()) level.wallSprites.move(Config.LEVEL_SIZE * level.x, Config.LEVEL_SIZE * level.y)
return level return level
def topleft(self) -> tuple:
"""
:return:
"""
def center(self) -> tuple: def center(self) -> tuple:
""" """
Returns the pixel center of the level. Returns the pixel center of the level.