From 5d29cf80a01ee88239a201975380c401d283b5e9 Mon Sep 17 00:00:00 2001 From: Stefano Rivera Date: Sun, 11 May 2014 23:34:25 +0200 Subject: [PATCH] working PlayerBitsWidget --- naja/scenes/game.py | 2 +- naja/widgets/player_bits.py | 30 +++++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/naja/scenes/game.py b/naja/scenes/game.py index 54368cb..f3db806 100644 --- a/naja/scenes/game.py +++ b/naja/scenes/game.py @@ -20,7 +20,7 @@ class GameScene(Scene): def __init__(self, state): super(GameScene, self).__init__(state) - self.add(PlayerBitsWidget((0, 0))) + self.add(PlayerBitsWidget((0, 0), state)) self.add(BoardWidget((0, 60), state)) self.add(GameBitsWidget((0, 540))) self.add(InfoAreaWidget((480, 0))) diff --git a/naja/widgets/player_bits.py b/naja/widgets/player_bits.py index 70d5d11..bdb7695 100644 --- a/naja/widgets/player_bits.py +++ b/naja/widgets/player_bits.py @@ -2,7 +2,11 @@ Widget that holds the player's bits. """ -from naja.constants import BIT_SIZE +import pygame + +from naja.constants import BIT_SIZE, BITS +from naja.resources import resources +from naja.resources.mutators import R90, R180, R270 from naja.widgets.base import Widget @@ -10,12 +14,28 @@ class PlayerBitsWidget(Widget): """ Widget which holds the player's bits. """ - def __init__(self, pos, image=None): + def __init__(self, pos, state): super(PlayerBitsWidget, self).__init__(pos, BIT_SIZE) + self.state = state def prepare(self): - pass + self.surface = pygame.Surface(BIT_SIZE) + bits = ( + (BITS.MSB, 'msb', ()), + (BITS.YELLOW, 'yellow', ()), + (BITS.MAGENTA, 'magenta', ()), + (BITS.CYAN, 'cyan', ()), + (BITS.WEST, 'arrow', (R90,)), + (BITS.EAST, 'arrow', (R270,)), + (BITS.SOUTH, 'arrow', (R180,)), + (BITS.NORTH, 'arrow', ()), + ) + for pos, (bit, image, transforms) in enumerate(bits): + 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) + self.surface.blit(img, (img.get_width() * pos, 0)) def draw(self, surface): - pass - #surface.blit(self.surface, self.rect) + surface.blit(self.surface, self.pos) -- 2.34.1