X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fwidgets%2Frobot.py;h=ddad5808547469f023348bd38dcdd8b0050d5d37;hb=4703c51496baf975ee4bff9465b4ed26950688d5;hp=b6e219bd0305a68a090f149b5b6301178aa95da5;hpb=7ba98383908eb9546ee78a14dad90057dc65757b;p=naja.git diff --git a/naja/widgets/robot.py b/naja/widgets/robot.py index b6e219b..ddad580 100644 --- a/naja/widgets/robot.py +++ b/naja/widgets/robot.py @@ -2,8 +2,8 @@ import pygame.locals as pgl -from naja.constants import PLAYER_SIZE, BIT_SIZE, TILE_SIZE, BITS -from naja.events import InvalidateTheWorld +from naja.constants import PLAYER_SIZE, BIT_SIZE, TILE_SIZE, BITS, ACT, KEYS +from naja.events import finish_event from naja.resources import resources from naja.resources.mutators import EIGHT_BIT from naja.widgets.base import Widget @@ -28,7 +28,7 @@ class RobotWidget(Widget): self.pos = (self.state.player.position[0] * TILE_SIZE[0], self.state.player.position[1] * TILE_SIZE[1] + BIT_SIZE[1]) self.surface = resources.get_image('board/robot.png', - transforms=(EIGHT_BIT,)) + transforms=(EIGHT_BIT,)).copy() for bit, img_name in IMG_MAP.iteritems(): if self.state.player.bits.check_bit(bit): bit_img = resources.get_image(img_name, @@ -39,21 +39,26 @@ class RobotWidget(Widget): surface.blit(self.surface, self.rect) def handle_event(self, ev): + if self.state.gameboard.player_mode == ACT: + return super(RobotWidget, self).handle_event(ev) if ev.type == pgl.KEYDOWN: - if ev.key in (pgl.K_UP, pgl.K_w): + if ev.key in KEYS.UP: if self.state.player.move(BITS.NORTH): - InvalidateTheWorld.post() - return True - if ev.key in (pgl.K_DOWN, pgl.K_s): + self.state.gameboard.change_mode() + return finish_event() + if ev.key in KEYS.DOWN: if self.state.player.move(BITS.SOUTH): - InvalidateTheWorld.post() - return True - if ev.key in (pgl.K_LEFT, pgl.K_a): + self.state.gameboard.change_mode() + return finish_event() + if ev.key in KEYS.LEFT: if self.state.player.move(BITS.WEST): - InvalidateTheWorld.post() - return True - if ev.key in (pgl.K_RIGHT, pgl.K_d): + self.state.gameboard.change_mode() + return finish_event() + if ev.key in KEYS.RIGHT: if self.state.player.move(BITS.EAST): - InvalidateTheWorld.post() - return True - super(RobotWidget, self).handle_event(ev) + self.state.gameboard.change_mode() + return finish_event() + if ev.key in (pgl.K_SPACE,): + self.state.gameboard.change_mode() + return finish_event() + return super(RobotWidget, self).handle_event(ev)