Merge branch 'master' of ctpug.org.za:koperkapel
authorSimon Cross <hodgestar@gmail.com>
Sat, 5 Mar 2016 22:15:32 +0000 (00:15 +0200)
committerSimon Cross <hodgestar@gmail.com>
Sat, 5 Mar 2016 22:15:32 +0000 (00:15 +0200)
koperkapel/gamelib/enemy_roach.py
koperkapel/scenes/level.py

index 90695b3916f99e2594fd8e1833a251046b9404fa..2a8438241f3bdc8ac3fa0380a57b28bc1b6e6834 100644 (file)
@@ -13,6 +13,7 @@ def get_enemy_roach(level):
     roach.anchor = (-16, -16)  # this should center them on the tile
     roach.game_pos = (0, 0)
     roach.health = 5
+    roach.angle = 0
     roach.level = level
     roach.move = partial(move, roach)
     roach.last_moved = 0
@@ -45,4 +46,12 @@ def move(roach, dt):
                 if enemy and enemy is not roach:
                     continue
                 roach.game_pos = (roach.game_pos[0] + dx, roach.game_pos[1] + dy)
+                if dy == 1:
+                    roach.angle = 180
+                elif dy == -1:
+                    roach.angle = 0
+                elif dx == 1:
+                    roach.angle = 270
+                else:
+                    roach.angle = 90
                 break
index 9c96b8dfeafe44124a526f00c36f88df89598be3..c68ac6dc03731a70269e7d1a5e928ddbafd60531 100644 (file)
@@ -98,7 +98,7 @@ class GameLevelScene(BaseLevelScene):
         self._friends = self.actors.add_layer("friendly roaches", level=9)
         self._items = self.actors.add_layer("items", level=9)
         self._generators = self.actors.add_layer("enemy generators", level=8)
-        self._enemies = self.actors.add_layer("enemies", level=7)
+        self._enemies = self.actors.add_layer("enemies", level=11)
         self._vehicle = Vehicle.current(world)
         self._mode = 'walk'
         self._angle = 0  # up
@@ -365,8 +365,11 @@ class GameLevelScene(BaseLevelScene):
     def on_key_down(self, key, mod, unicode):
         x, y = self._player_pos
         if key in (keys.DOWN, keys.UP, keys.LEFT, keys.RIGHT):
+            firing = (keys.X in self._held_keys)
             self._held_keys.clear()
             self._held_keys.add(key)
+            if firing:
+                self._held_keys.add(keys.X)
             # We do this so pressing the key has an instant effect, and can
             # then be held
             self._last_key_down = self._key_rate + 0.01