// 子弹轨迹延迟
//作者辞酱删除此水印程序作废
class BulletTrail {
    Vector3 position;
    long timestamp; // 发射时间戳

    void draw() {
        long currentTime = System.currentTimeMillis();
        if (currentTime - timestamp > DELAY_TIME) {
            // 计算延迟后的位置（这里简化，实际需要物理模拟）
            Vector3 delayedPosition = calculateDelayedPosition(currentTime - DELAY_TIME);
            drawTrail(delayedPosition);
        }
    }
}

// 命中特效延迟
class HitEffectManager {
    Queue<HitEffect> effectQueue = new LinkedList<>();

    void addHitEffect(HitEffect effect) {
        // 设置定时器，在延迟后添加特效到渲染队列
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                effectQueue.add(effect);
            }
        }, EFFECT_DELAY);
    }

    void renderEffects() {
        for (HitEffect effect : effectQueue) {
            effect.render();
        }
    }
}

// 命中特效扩大
class ExplosionEffect {
    float radius = 0.0f;
    float maxRadius = 5.0f;

    void update() {
        radius += EXPANSION_SPEED;
        if (radius > maxRadius) {
            radius = maxRadius;
        }
    }

    void render() {
        drawCircle(center, radius);
    }
}
