X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fwidgets%2Frobot.py;h=4506edf6e1e91d66dc89ee1091b83bcbe92c81db;hb=b28198fc51a256d3e1ac9d3f983aff05c6ace25a;hp=7e218a93a7451291fa662b57508dfc09bb5e537a;hpb=2db0ff32db75f5e1c2735b793410d0ebd3b7e2a3;p=naja.git diff --git a/naja/widgets/robot.py b/naja/widgets/robot.py index 7e218a9..4506edf 100644 --- a/naja/widgets/robot.py +++ b/naja/widgets/robot.py @@ -1,8 +1,9 @@ """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.events import InvalidateTheWorld from naja.resources import resources from naja.resources.mutators import EIGHT_BIT from naja.widgets.base import Widget @@ -36,3 +37,23 @@ class RobotWidget(Widget): def draw(self, surface): surface.blit(self.surface, self.rect) + + def handle_event(self, ev): + if ev.type == pgl.KEYDOWN: + if ev.key in (pgl.K_UP, pgl.K_w): + if self.state.player.move(BITS.NORTH): + InvalidateTheWorld.post() + return True + if ev.key in (pgl.K_DOWN, pgl.K_s): + if self.state.player.move(BITS.SOUTH): + InvalidateTheWorld.post() + return True + if ev.key in (pgl.K_LEFT, pgl.K_a): + if self.state.player.move(BITS.WEST): + InvalidateTheWorld.post() + return True + if ev.key in (pgl.K_RIGHT, pgl.K_d): + if self.state.player.move(BITS.EAST): + InvalidateTheWorld.post() + return True + super(RobotWidget, self).handle_event(ev)