From: Stefano Rivera Date: Sun, 11 May 2014 21:58:19 +0000 (+0200) Subject: Scale up images X-Git-Tag: 0.1~366 X-Git-Url: https://git.ctpug.org.za/?a=commitdiff_plain;h=85f20ca165c1710c96afbc42fa07acb68b6b4c1d;p=naja.git Scale up images --- diff --git a/naja/resources/mutators.py b/naja/resources/mutators.py index 2a730de..382e7c7 100644 --- a/naja/resources/mutators.py +++ b/naja/resources/mutators.py @@ -1,6 +1,8 @@ '''Mutations to apply to images''' -from pygame.transform import rotate, flip +from pygame.transform import flip, rotate, scale + +from naja.constants import EIGHT_BIT_SCALE class Mutator(object): @@ -27,6 +29,15 @@ def rotator(angle): return Mutator(rotate, angle) +def scaler(size): + return Mutator(scale, size) + + +def scale_multiplier(image, factor): + size = image.get_width() * factor, image.get_height() * factor + return scale(image, size) + + # Identity mutator NULL = Mutator(lambda x: x) @@ -37,3 +48,5 @@ R270 = rotator(-90) FLIP_H = Mutator(flip, True, False) FLIP_V = Mutator(flip, False, True) + +EIGHT_BIT = Mutator(scale_multiplier, EIGHT_BIT_SCALE) diff --git a/naja/widgets/player_bits.py b/naja/widgets/player_bits.py index bdb7695..fff8b0d 100644 --- a/naja/widgets/player_bits.py +++ b/naja/widgets/player_bits.py @@ -6,7 +6,7 @@ import pygame from naja.constants import BIT_SIZE, BITS from naja.resources import resources -from naja.resources.mutators import R90, R180, R270 +from naja.resources.mutators import R90, R180, R270, EIGHT_BIT from naja.widgets.base import Widget @@ -34,7 +34,7 @@ class PlayerBitsWidget(Widget): is_set = self.state.player.bits.check_bit(bit) img = resources.get_image( 'bits', '%s_%s.png' % (image, 'on' if is_set else 'off'), - transforms=transforms) + transforms=transforms + (EIGHT_BIT,)) self.surface.blit(img, (img.get_width() * pos, 0)) def draw(self, surface): diff --git a/naja/widgets/robot.py b/naja/widgets/robot.py index cfdb750..7e218a9 100644 --- a/naja/widgets/robot.py +++ b/naja/widgets/robot.py @@ -4,6 +4,7 @@ import pygame.locals as pgl from naja.constants import PLAYER_SIZE, BIT_SIZE, TILE_SIZE, BITS from naja.resources import resources +from naja.resources.mutators import EIGHT_BIT from naja.widgets.base import Widget IMG_MAP = { @@ -25,10 +26,12 @@ class RobotWidget(Widget): # Look up the required bits on the board location self.pos = (self.state.player.position[0] * TILE_SIZE[0] + 32, self.state.player.position[1] * TILE_SIZE[1] + BIT_SIZE[1]) - self.surface = resources.get_image('board/robot.png') + self.surface = resources.get_image('board/robot.png', + transforms=(EIGHT_BIT,)) for bit, img_name in IMG_MAP.iteritems(): if self.state.player.bits.check_bit(bit): - bit_img = resources.get_image(img_name) + bit_img = resources.get_image(img_name, + transforms=(EIGHT_BIT,)) self.surface.blit(bit_img, (0, 0)) def draw(self, surface): diff --git a/naja/widgets/selector.py b/naja/widgets/selector.py index c0c91b9..5e563a6 100644 --- a/naja/widgets/selector.py +++ b/naja/widgets/selector.py @@ -2,7 +2,7 @@ import pygame.locals as pgl from naja.widgets.base import Container from naja.resources import resources -from naja.resources.mutators import R270 +from naja.resources.mutators import EIGHT_BIT, R270 class SelectorWidget(Container): @@ -10,7 +10,7 @@ class SelectorWidget(Container): super(SelectorWidget, self).__init__(*args, **kwargs) self.position = 0 self.selector = resources.get_image('bits', 'arrow_on.png', - transforms=(R270,)) + transforms=(R270, EIGHT_BIT)) def render(self, surface): super(SelectorWidget, self).render(surface) diff --git a/naja/widgets/tile.py b/naja/widgets/tile.py index 4a88e12..cd0ab3a 100644 --- a/naja/widgets/tile.py +++ b/naja/widgets/tile.py @@ -4,6 +4,7 @@ import pygame.locals as pgl from naja.constants import TILE_SIZE, BITS from naja.resources import resources +from naja.resources.mutators import EIGHT_BIT from naja.widgets.base import Widget @@ -41,7 +42,8 @@ class TileWidget(Widget): for pattern in bits: x_offset = 10 for bit in pattern: - img = resources.get_image(BIT_MAP[bit]) + img = resources.get_image(BIT_MAP[bit], + transforms=(EIGHT_BIT,)) self.surface.blit(img, (x_offset, y_offset)) x_offset += 32 y_offset += 32