Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / room / CrossAisleRectData.cs
@小李xl 小李xl on 7 Oct 2023 1 KB 过道迷雾, 开发中...
  1.  
  2. using Godot;
  3.  
  4. /// <summary>
  5. /// 交叉过道数据
  6. /// </summary>
  7. public class CrossAisleRectData
  8. {
  9. /// <summary>
  10. /// 第一道门连接的过道区域
  11. /// </summary>
  12. public Rect2I Rect1;
  13. /// <summary>
  14. /// 交叉点区域
  15. /// </summary>
  16. public Rect2I Cross;
  17. /// <summary>
  18. /// 第二道门连接的过道区域
  19. /// </summary>
  20. public Rect2I Rect2;
  21.  
  22. /// <summary>
  23. /// 计算并返回过道所占矩形大小
  24. /// </summary>
  25. public Rect2I CalcAisleRect()
  26. {
  27. int x, y, w, h;
  28. if (Rect1.Position.X < Rect2.Position.X)
  29. {
  30. x = Rect1.Position.X;
  31. w = Rect2.Position.X - Rect1.Position.X + Rect2.Size.X;
  32. }
  33. else
  34. {
  35. x = Rect2.Position.X;
  36. w = Rect1.Position.X - Rect2.Position.X + Rect1.Size.X;
  37. }
  38. if (Rect1.Position.Y < Rect2.Position.Y)
  39. {
  40. y = Rect1.Position.Y;
  41. h = Rect2.Position.Y - Rect1.Position.Y + Rect2.Size.Y;
  42. }
  43. else
  44. {
  45. y = Rect2.Position.Y;
  46. h = Rect1.Position.Y - Rect2.Position.Y + Rect1.Size.Y;
  47. }
  48.  
  49. return new Rect2I(x, y, w, h);
  50. }
  51. }