Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / effects / AutoDestroySprite.cs
@小李xl 小李xl on 18 Sep 2023 868 bytes 近战反弹抵消子弹和反弹子弹
using Godot;
using Godot.Collections;

/// <summary>
/// 到期自动销毁的帧动画
/// </summary>
public partial class AutoDestroySprite : AnimatedSprite2D
{
    /// <summary>
    /// 延时销毁时间
    /// </summary>
    [Export]
    public float DelayTime { get; set; } = 1f;
    
    /// <summary>
    /// 子节点包含的例子特效, 在创建完成后自动播放
    /// </summary>
    [Export]
    public Array<GpuParticles2D> Particles2D { get; set; }
    
    public override async void _Ready()
    {
        var sceneTreeTimer = GetTree().CreateTimer(DelayTime);
        if (Particles2D != null)
        {
            foreach (var gpuParticles2D in Particles2D)
            {
                gpuParticles2D.Emitting = true;
            }
        }
        await ToSignal(sceneTreeTimer, Timer.SignalName.Timeout);
        QueueFree();
    }
}