Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / room / CrossAisleRectData.cs
@小李xl 小李xl on 7 Oct 2023 1 KB 过道迷雾, 开发中...

using Godot;

/// <summary>
/// 交叉过道数据
/// </summary>
public class CrossAisleRectData
{
    /// <summary>
    /// 第一道门连接的过道区域
    /// </summary>
    public Rect2I Rect1;
    /// <summary>
    /// 交叉点区域
    /// </summary>
    public Rect2I Cross;
    /// <summary>
    /// 第二道门连接的过道区域
    /// </summary>
    public Rect2I Rect2;

    /// <summary>
    /// 计算并返回过道所占矩形大小
    /// </summary>
    public Rect2I CalcAisleRect()
    {
        int x, y, w, h;
        if (Rect1.Position.X < Rect2.Position.X)
        {
            x = Rect1.Position.X;
            w = Rect2.Position.X - Rect1.Position.X + Rect2.Size.X;
        }
        else
        {
            x = Rect2.Position.X;
            w = Rect1.Position.X - Rect2.Position.X + Rect1.Size.X;
        }
        if (Rect1.Position.Y < Rect2.Position.Y)
        {
            y = Rect1.Position.Y;
            h = Rect2.Position.Y - Rect1.Position.Y + Rect2.Size.Y;
        }
        else
        {
            y = Rect2.Position.Y;
            h = Rect1.Position.Y - Rect2.Position.Y + Rect1.Size.Y;
        }

        return new Rect2I(x, y, w, h);
    }
}