for enemy in enemies:
dist = abs(player.x - enemy.x)
if dist < ENEMY_W // 2:
tan = ENEMY_H / (ENEMY_W / 2)
spike_y = enemy.y - dist * tan
player_bottom = player.y + PLAYER_H // 2
if player_bottom >= spike_y:
player.lives -= 1
enemies.remove(enemy)
if player.lives <= 0:
game_active = False
break