Fixed abysmal draw method

This commit is contained in:
Marcin Kostrzewski 2020-05-14 11:27:54 +02:00
parent e66b0d4a59
commit 1eb75fc354
2 changed files with 25 additions and 31 deletions

View File

@ -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:

View File

@ -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)