Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / image / RoomStaticImageCanvas.cs
@lijincheng lijincheng on 25 Jul 2023 1 KB 调整部分 Ui 函数名称

using Godot;

public class RoomStaticImageCanvas : IDestroy
{
    public bool IsDestroyed { get; private set; }
    /// <summary>
    /// 画布节点实例
    /// </summary>
    public ImageCanvas CanvasSprite { get; }
    /// <summary>
    /// 房间坐标相对于画布坐标偏移量, 单位: 像素
    /// </summary>
    public Vector2I RoomOffset { get; set; }

    public RoomStaticImageCanvas(Node root, Vector2I position, int width, int height)
    {
        CanvasSprite = new ImageCanvas(width, height);
        //CanvasSprite.Clear(new Color(1, 1, 1, 0.2f));
        CanvasSprite.GlobalPosition = position;
        root.AddChild(CanvasSprite);
    }

    /// <summary>
    /// 将世界坐标转为画布下的坐标
    /// </summary>
    public Vector2 ToImageCanvasPosition(Vector2 pos)
    {
        return pos - CanvasSprite.GlobalPosition;
    }

    public void Destroy()
    {
        if (IsDestroyed)
        {
            return;
        }

        IsDestroyed = true;
        CanvasSprite.Destroy();
    }
}