X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fscenes%2Flevel.py;h=ca20f732a75f2d5d2f88a22e062e69d60f768ab3;hb=8f2e7a53419fd646dad02ff5f099db5bb5c4d80e;hp=c5a847b37de719da32810dd786ad36a7e78aa998;hpb=8795602b8b39d5dce884310b11fc9b0a21263ddb;p=koperkapel.git diff --git a/koperkapel/scenes/level.py b/koperkapel/scenes/level.py index c5a847b..ca20f73 100644 --- a/koperkapel/scenes/level.py +++ b/koperkapel/scenes/level.py @@ -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)