changeset 159:f80323140317

Stickier facings
author Neil Muller <drnlmuller@gmail.com>
date Tue, 03 Sep 2013 00:10:54 +0200
parents 59f05553ffd4
children 0c9b0449485e
files nagslang/game_object.py
diffstat 1 files changed, 13 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/nagslang/game_object.py	Mon Sep 02 23:53:48 2013 +0200
+++ b/nagslang/game_object.py	Tue Sep 03 00:10:54 2013 +0200
@@ -179,11 +179,17 @@
             'left': left_image,
             'right': right_image,
         }
+        self._face = 'left'
+
+    def _update_facing(self, angle):
+        if abs(angle) < math.pi / 2:
+            self._face = 'right'
+        elif abs(angle) > math.pi / 2:
+            self._face = 'left'
 
     def get_image(self, angle):
-        if abs(angle) < math.pi / 2:
-            return self._images['right']
-        return self._images['left']
+        self._update_facing(angle)
+        return self._images[self._face]
 
     def render(self, surface):
         pos = self.game_object.get_render_position(surface)
@@ -200,15 +206,13 @@
         }
         self._frame = 0
         self._moving = False
+        self._face = 'left'
 
     def get_image(self, angle):
-        if abs(angle) < math.pi / 2:
-            face = 'right'
-        else:
-            face = 'left'
-        if self._frame >= len(self._images[face]):
+        self._update_facing(angle)
+        if self._frame >= len(self._images[self._face]):
             self._frame = 0
-        return self._images[face][self._frame]
+        return self._images[self._face][self._frame]
 
     def render(self, surface):
         pos = self.game_object.get_render_position(surface)