Scale up images
authorStefano Rivera <stefano@rivera.za.net>
Sun, 11 May 2014 21:58:19 +0000 (23:58 +0200)
committerStefano Rivera <stefano@rivera.za.net>
Sun, 11 May 2014 21:58:29 +0000 (23:58 +0200)
naja/resources/mutators.py
naja/widgets/player_bits.py
naja/widgets/robot.py
naja/widgets/selector.py
naja/widgets/tile.py

index 2a730de5663a3fb39b71e0ea354f02d364781347..382e7c77555edaf0f60e633dab9042c2aa584173 100644 (file)
@@ -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)
index bdb7695637c9879cb7c4c2d410fab08f51f0d3b8..fff8b0dffaccea301471a9831f32e3888b4d1047 100644 (file)
@@ -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):
index cfdb75013f6c64f1f7375e005a408323185b2d0d..7e218a93a7451291fa662b57508dfc09bb5e537a 100644 (file)
@@ -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):
index c0c91b96e8ec584fbc76e437c5605d70dd11a568..5e563a645bbeedbfb22049ddeed20118f9dbb3cb 100644 (file)
@@ -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)
index 4a88e121fb01dfeb688ec68c119e7e52b6a0595d..cd0ab3ab33d3eda36d8bce098e7dd92ebf43b2ab 100644 (file)
@@ -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