Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / activity / ExternalForce.cs
  1.  
  2. using Godot;
  3.  
  4. /// <summary>
  5. /// 物体所受到的外力的描述对象
  6. /// </summary>
  7. public class ExternalForce
  8. {
  9. /// <summary>
  10. /// 当前力的名称
  11. /// </summary>
  12. public string Name { get; }
  13.  
  14. /// <summary>
  15. /// 是否启用这个力对象, 如果禁用, 则该力对象则不会参与到运动计算当中, 而且不会调用 PhysicsProcess 方法
  16. /// </summary>
  17. public bool Enable { get; set; } = true;
  18.  
  19. /// <summary>
  20. /// 阻力大小, 也就是速度每秒衰减的量
  21. /// </summary>
  22. public float Resistance { get; set; } = 0;
  23.  
  24. /// <summary>
  25. /// 是否在空中也会受到阻力
  26. /// </summary>
  27. public bool EnableResistanceInTheAir { get; set; } = true;
  28. /// <summary>
  29. /// 当速度到达 0 后是否自动销毁, 默认 true
  30. /// </summary>
  31. public bool AutoDestroy { get; set; } = true;
  32. /// <summary>
  33. /// 当前力的速率
  34. /// </summary>
  35. public Vector2 Velocity { get; set; } = Vector2.Zero;
  36.  
  37. /// <summary>
  38. /// 物理帧更新
  39. /// </summary>
  40. public virtual void PhysicsProcess(float delta)
  41. {
  42. }
  43.  
  44. public ExternalForce(string name)
  45. {
  46. Name = name;
  47. }
  48. }