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:
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)
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)
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)