From 1eb75fc35442120d2464474371f89f5ed8841a68 Mon Sep 17 00:00:00 2001 From: Marcin Kostrzewski Date: Thu, 14 May 2020 11:27:54 +0200 Subject: [PATCH] Fixed abysmal draw method --- src/game/Map.py | 14 +++++++------- src/game/Screen.py | 42 ++++++++++++++++++------------------------ 2 files changed, 25 insertions(+), 31 deletions(-) diff --git a/src/game/Map.py b/src/game/Map.py index e2520c2..d0c3860 100644 --- a/src/game/Map.py +++ b/src/game/Map.py @@ -88,27 +88,27 @@ class Map: for col, tile in enumerate(tiles): if tile == 's': object = TerrainTile(col, row, 'sand.png', self.tileSize, 15) - self.screen.draw(object, Locations.MAP) + self.screen.addSprite(object, Locations.MAP) self.terrainTilesList.append(object) elif tile == ',': object = TerrainTile(col, row, 'floor.png', self.tileSize, 0) - self.screen.draw(object, Locations.MAP) + self.screen.addSprite(object, Locations.MAP) self.terrainTilesList.append(object) elif tile == '.': object = TerrainTile(col, row, 'grass.png', self.tileSize, 10) - self.screen.draw(object, Locations.MAP) + self.screen.addSprite(object, Locations.MAP) self.terrainTilesList.append(object) elif tile == 'c': object = TerrainTile(col, row, 'clay.png', self.tileSize, 20) - self.screen.draw(object, Locations.MAP) + self.screen.addSprite(object, Locations.MAP) self.terrainTilesList.append(object) elif tile == 'x': object = TerrainTile(col, row, 'water.png', self.tileSize, 0) - self.screen.draw(object, Locations.MAP) + self.screen.addSprite(object, Locations.MAP) self.collidables.add(object) elif tile == 'w': object = TerrainTile(col, row, 'wall.png', self.tileSize, 0) - self.screen.draw(object, Locations.MAP) + self.screen.addSprite(object, Locations.MAP) self.collidables.add(object) def getEntityOnCoord(self, coord): @@ -137,7 +137,7 @@ class Map: # TODO: REMOVE DONT ADD def addEntity(self, entity, DONTADD=False): # TODO: This method should set entities coords - self.screen.draw(entity, Locations.MAP) + self.screen.addSprite(entity, Locations.MAP) # dodajemy bo wszystkie entity są kolizyjne self.collidables.add(entity) if not DONTADD: diff --git a/src/game/Screen.py b/src/game/Screen.py index cdede0f..fbb8044 100644 --- a/src/game/Screen.py +++ b/src/game/Screen.py @@ -47,19 +47,13 @@ class Screen: return result - # method to draw a sprite. Location param specifies where to draw the item (Locations enum) - # TODO: Retarded - def draw(self, sprite, location, posX=0, posY=0): - # TODO: Screen cannot alter sprites position!! - from entities.Entity import Entity - # For UI, Map, and other sprites - if type(sprite) is not Entity: - sprite.rect.x += posX - sprite.rect.y += posY - # For entities - else: - sprite.setCoords((posX, posY), True) - + def addSprite(self, sprite, location): + """ + Adds a sprite to a screen at a given location + :type location: Locations + :param sprite: A sprite to add. + :param location: Where should the sprite be displayed + """ if location.value is Locations.RIGHT_UI.value: sprite.rect.x += self.mapCoord + self.mapSize elif location.value == Locations.MAP.value: @@ -78,14 +72,14 @@ class Screen: def __initUi__(self): self.ui = Ui(self.getUiWidth(Locations.RIGHT_UI), self.getUiWidth(Locations.LEFT_UI), self.winY, self.gameObject.ingameTimer) - self.draw(self.ui.timerTextView, Locations.LEFT_UI) - self.draw(self.ui.isDayTextView, Locations.LEFT_UI) - self.draw(self.ui.console, Locations.LEFT_UI) - self.draw(self.ui.healthTextView, Locations.RIGHT_UI) - self.draw(self.ui.healthBar, Locations.RIGHT_UI) - self.draw(self.ui.hungerTextView, Locations.RIGHT_UI) - self.draw(self.ui.hungerBar, Locations.RIGHT_UI) - self.draw(self.ui.staminaTextView, Locations.RIGHT_UI) - self.draw(self.ui.staminaBar, Locations.RIGHT_UI) - self.draw(self.ui.thirstTextView, Locations.RIGHT_UI) - self.draw(self.ui.thirstBar, Locations.RIGHT_UI) + self.addSprite(self.ui.timerTextView, Locations.LEFT_UI) + self.addSprite(self.ui.isDayTextView, Locations.LEFT_UI) + self.addSprite(self.ui.console, Locations.LEFT_UI) + self.addSprite(self.ui.healthTextView, Locations.RIGHT_UI) + self.addSprite(self.ui.healthBar, Locations.RIGHT_UI) + self.addSprite(self.ui.hungerTextView, Locations.RIGHT_UI) + self.addSprite(self.ui.hungerBar, Locations.RIGHT_UI) + self.addSprite(self.ui.staminaTextView, Locations.RIGHT_UI) + self.addSprite(self.ui.staminaBar, Locations.RIGHT_UI) + self.addSprite(self.ui.thirstTextView, Locations.RIGHT_UI) + self.addSprite(self.ui.thirstBar, Locations.RIGHT_UI)