Many-angled roaches
[koperkapel.git] / koperkapel / scenes / level.py
index 867eaacebea738a350fc27c73cdc94d870525c60..2484119350570d93fdfb49b37f5d0c02106876d6 100644 (file)
@@ -87,6 +87,10 @@ class GameLevelScene(BaseLevelScene):
         elif self._mode == 'crawl':
             return self._level.can_crawl(x, y, self._level_layer)
 
+    def _set_angle(self, angle):
+        for roach in self._roaches:
+            roach.angle = angle
+
     def on_key_down(self, key, mod, unicode):
         offset = None
         x, y = self._player_pos
@@ -94,18 +98,22 @@ class GameLevelScene(BaseLevelScene):
             if self._can_move(x, y + 1):
                 self._set_pos(x, y + 1)
                 offset = (0, TILE_SIZE)
+                self._set_angle(180)
         elif key == keys.UP:
             if self._can_move(x, y - 1):
                 self._set_pos(x, y - 1)
                 offset = (0, -TILE_SIZE)
+                self._set_angle(0)
         elif key == keys.LEFT:
             if self._can_move(x - 1, y):
                 self._set_pos(x - 1, y)
                 offset = (-TILE_SIZE, 0)
+                self._set_angle(90)
         elif key == keys.RIGHT:
             if self._can_move(x + 1, y):
                 self._set_pos(x + 1, y)
                 offset = (TILE_SIZE, 0)
+                self._set_angle(270)
         elif key == keys.S:
             if self._level_layer == 'floor' and self._level.can_crawl(x, y, 'floor'):
                 # We're probably on a grate