X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fscenes%2Flevel.py;h=0aaa33d487dea765feeaa6776552fc26cefdfb3e;hb=5d865f00b2c0eac939a3cf856c0667b81eb1e4e7;hp=c5a847b37de719da32810dd786ad36a7e78aa998;hpb=8795602b8b39d5dce884310b11fc9b0a21263ddb;p=koperkapel.git diff --git a/koperkapel/scenes/level.py b/koperkapel/scenes/level.py index c5a847b..0aaa33d 100644 --- a/koperkapel/scenes/level.py +++ b/koperkapel/scenes/level.py @@ -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 @@ -204,6 +204,13 @@ class GameLevelScene(BaseLevelScene): bullet.level_layer = self._level_layer self._bullets.add(bullet) + def _check_for_bullet_hits(self): + for bullet in list(self._bullets): + for enemy in list(self._enemies): + if enemy.collidepoint(bullet.pos): + self._hit_enemy(enemy, bullet.weapon) + self._bullets.remove(bullet) + def _update_bullet(self, bullet, dt): bullet.dt += dt if bullet.dt > 0.1: @@ -234,9 +241,9 @@ class GameLevelScene(BaseLevelScene): x, y = self._player_pos old_vehicle = world.vehicles.current - + item = self._level.item_at(x, y) - + if item and item.item_type == "vehicle": world.vehicles.current = item.item_data["vehicle"] self._level.remove_item(item) @@ -245,7 +252,8 @@ class GameLevelScene(BaseLevelScene): world.vehicles.current = "walking" if old_vehicle != "walking": - dropped_vehicle = create_new_item("vehicle", (x, y), vehicle=old_vehicle) + dropped_vehicle = create_new_item( + "vehicle", (x, y), vehicle=old_vehicle) self._level.items.append(dropped_vehicle) self._items.add(dropped_vehicle) @@ -269,6 +277,7 @@ class GameLevelScene(BaseLevelScene): bullet.pos = self.calc_offset( bullet.game_pos[0] * TILE_SIZE + (TILE_SIZE // 2), bullet.game_pos[1] * TILE_SIZE + (TILE_SIZE // 2)) + self._check_for_bullet_hits() more = self._check_held_keys(dt) if more: events.extend(more)