Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / activity / ExternalForce.cs
@lijincheng lijincheng on 13 Feb 2023 1 KB 更改工程结构

using Godot;

/// <summary>
/// 物体所受到的外力的描述对象
/// </summary>
public class ExternalForce
{
    /// <summary>
    /// 当前力的名称
    /// </summary>
    public string Name { get; }

    /// <summary>
    /// 是否启用这个力对象, 如果禁用, 则该力对象则不会参与到运动计算当中, 而且不会调用 PhysicsProcess 方法
    /// </summary>
    public bool Enable { get; set; } = true;

    /// <summary>
    /// 阻力大小, 也就是速度每秒衰减的量
    /// </summary>
    public float Resistance { get; set; } = 5;

    /// <summary>
    /// 当速度到达 0 后是否自动销毁
    /// </summary>
    public bool AutoDestroy { get; set; } = true;
    
    /// <summary>
    /// 当前力的速率
    /// </summary>
    public Vector2 Velocity { get; set; } = Vector2.Zero;

    /// <summary>
    /// 物理帧更新
    /// </summary>
    public virtual void PhysicsProcess(float delta)
    {
    }

    public ExternalForce(string name)
    {
        Name = name;
    }
}