Mercurial > skaapsteker
changeset 357:742731e6e6fd
Centre small inventory items rather than resizing
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sat, 09 Apr 2011 14:03:44 +0200 |
parents | f5148f70ca84 |
children | 3642c36bbd32 |
files | skaapsteker/levelscene.py skaapsteker/sprites/player.py |
diffstat | 2 files changed, 16 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/skaapsteker/levelscene.py Sat Apr 09 13:42:50 2011 +0200 +++ b/skaapsteker/levelscene.py Sat Apr 09 14:03:44 2011 +0200 @@ -213,9 +213,15 @@ my_item = fox.item if my_item: # Get image and resize it - inv_pos = self._clip_rect.left + 8, self._clip_rect.top + fox_hud.INVENTORY_START if self._player.inventory_image is None: self._player.make_inventory_image() + inv_pos = self._player.inventory_image.get_rect() + inv_pos.move_ip(self._clip_rect.left + 8, + self._clip_rect.top + fox_hud.INVENTORY_START) + if inv_pos.width < fox_hud.INVENTORY_SIZE: + inv_pos.left += (fox_hud.INVENTORY_SIZE - inv_pos.width) / 2 + if inv_pos.height < fox_hud.INVENTORY_SIZE: + inv_pos.top += (fox_hud.INVENTORY_SIZE - inv_pos.height) / 2 self._level_surface.blit(self._player.inventory_image, inv_pos) # Tail bg bgsurf = pygame.Surface((self._tail.get_size()[0] + 2 * fox_hud.BG_MARGIN,
--- a/skaapsteker/sprites/player.py Sat Apr 09 13:42:50 2011 +0200 +++ b/skaapsteker/sprites/player.py Sat Apr 09 14:03:44 2011 +0200 @@ -6,7 +6,7 @@ from ..sprites.base import find_sprite, TILE_SIZE, PC_LAYER, MONSTER_LAYER from ..sprites.projectiles import Fireball from ..physics import Sprite -from ..constants import Layers +from ..constants import Layers, FoxHud from ..data import get_files, load_image from ..engine import PlayerDied, AddSpriteEvent @@ -411,12 +411,15 @@ self.inventory_image = None image = sprite.image if image.get_width() > image.get_height(): - new_width = 48 - new_height = int(image.get_height() * (48.0 / image.get_width())) + new_width = FoxHud.INVENTORY_SIZE + new_height = int(image.get_height() * (float(FoxHud.INVENTORY_SIZE) / image.get_width())) else: - new_height = 48 - new_width = int(image.get_width() * (48.0 / image.get_height())) - self.inventory_image = pygame.transform.scale(image, (new_width, new_height)) + new_height = FoxHud.INVENTORY_SIZE + new_width = int(image.get_width() * (float(FoxHud.INVENTORY_SIZE) / image.get_height())) + if image.get_width() <= FoxHud.INVENTORY_SIZE and image.get_height() <= FoxHud.INVENTORY_SIZE: + self.inventory_image = image + else: + self.inventory_image = pygame.transform.smoothscale(image, (new_width, new_height)) sprite.kill() # ensure we don't leak into the scene at any point