-- 定义子弹追踪函数
function updateBulletPosition(bullet, targetX, targetY, deltaTime)
    -- 计算方向向量
    local dx = targetX - bullet.x
    local dy = targetY - bullet.y
    -- 计算距离
    local distance = math.sqrt(dx * dx + dy * dy)
    -- 标准化方向
    if distance > 0 then
        dx = dx / distance
        dy = dy / distance
    end
    -- 根据速度更新位置（这里假设bullet.speed存在）
    bullet.x = bullet.x + dx * bullet.speed * deltaTime
    bullet.y = bullet.y + dy * bullet.speed * deltaTime
end

-- 子弹表
local bullets = {
    { caliber = "5.56mm", x = 0, y = 0, speed = 10 },
    { caliber = "7.62mm", x = 0, y = 0, speed = 12 },
    { caliber = "9mm", x = 0, y = 0, speed = 8 }
}

-- 假设的目标位置和时间增量
local targetX = 100
local targetY = 100
local deltaTime = 0.016 -- 约60FPS的一帧时间

-- 更新所有子弹位置
for _, bullet in ipairs(bullets) do
    updateBulletPosition(bullet, targetX, targetY, deltaTime)
    print(string.format("%s bullet moved to (%.2f, %.2f)", bullet.caliber, bullet.x, bullet.y))
end
