changeset 17:619b9b648e82

arrows
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Thu, 14 Mar 2013 10:23:58 +0100
parents 14a80ae3b325
children f2b4790d9566
files fhrl/mobs.py
diffstat 1 files changed, 9 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/fhrl/mobs.py	Thu Mar 14 09:54:37 2013 +0100
+++ b/fhrl/mobs.py	Thu Mar 14 10:23:58 2013 +0100
@@ -118,6 +118,7 @@
 
     def act(self, level, display):
         keys = pygame.key.get_pressed()
+        got_key = True
         if keys[pygame.K_UP]:
             if keys[pygame.K_LEFT]:
                 self.dir = 4
@@ -137,8 +138,15 @@
         elif keys[pygame.K_RIGHT]:
             self.dir = 1
         else:
+            got_key = False
             self.arrow.kill()
-            if self.dir is not None:
+        if self.dir is not None:
+            self.arrow.set_image(display.resources.arrows[self.dir])
+            self.arrow.rect.center = self.rect.center
+            self.arrow.depth = 1000
+            self.arrow.rect.move_ip(DX[self.dir] * 32, DY[self.dir] * 32)
+            display.sprites.add(self.arrow)
+            if not got_key:
                 try:
                     anims = [self.walk(self.dir, level)]
                     item = level.find_item((self.x, self.y))
@@ -157,12 +165,6 @@
                     pass
                 finally:
                     self.dir = None
-        if self.dir is not None:
-            self.arrow.set_image(display.resources.arrows[self.dir])
-            self.arrow.rect.center = self.rect.center
-            self.arrow.depth = 1000
-            self.arrow.rect.move_ip(DX[self.dir] * 32, DY[self.dir] * 32)
-            display.sprites.add(self.arrow)
         return []