from naja.widgets.player_bits import PlayerBitsWidget
from naja.widgets.game_bits import GameBitsWidget
from naja.widgets.info_area import InfoAreaWidget
+from naja.widgets.robot import RobotWidget
class GameScene(Scene):
self.add(BoardWidget((0, 60), state))
self.add(GameBitsWidget((0, 540)))
self.add(InfoAreaWidget((480, 0)))
+ self.add(RobotWidget(state))
def handle_scene_event(self, ev):
from naja.scenes.menu import MenuScene
--- /dev/null
+"""Widget to draw the player on the screen"""
+import pygame
+import pygame.locals as pgl
+
+from naja.constants import PLAYER_SIZE, BIT_SIZE, TILE_SIZE, BITS
+from naja.resources import resources
+from naja.widgets.base import Widget
+
+IMG_MAP = {
+ BITS.CYAN: 'board/robot_cyan.png',
+ BITS.YELLOW: 'board/robot_yellow.png',
+ BITS.MAGENTA: 'board/robot_magenta.png',
+ }
+
+
+class RobotWidget(Widget):
+ """Widget which holds a tile on the game board."""
+ def __init__(self, state):
+ pos = (state.player.position[0] * TILE_SIZE[0] + 32,
+ state.player.position[1] * TILE_SIZE[1] + BIT_SIZE[1])
+ super(RobotWidget, self).__init__(pos, PLAYER_SIZE)
+ self.state = state
+
+ def prepare(self):
+ # 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')
+ for bit, img_name in IMG_MAP.iteritems():
+ if self.state.player.bits.check_bit(bit):
+ bit_img = resources.get_image(img_name)
+ self.surface.blit(bit_img, (0, 0))
+
+ def draw(self, surface):
+ surface.blit(self.surface, self.rect)