Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / RoomStaticImageCanvas.cs
  1.  
  2. using Godot;
  3.  
  4. public class RoomStaticImageCanvas : IDestroy
  5. {
  6. public bool IsDestroyed { get; private set; }
  7. /// <summary>
  8. /// 画布节点实例
  9. /// </summary>
  10. public ImageCanvas CanvasSprite { get; }
  11. /// <summary>
  12. /// 房间坐标相对于画布坐标偏移量, 单位: 像素
  13. /// </summary>
  14. public Vector2I RoomOffset { get; set; }
  15.  
  16. public RoomStaticImageCanvas(Node root, Vector2I position, int width, int height)
  17. {
  18. CanvasSprite = new ImageCanvas(width, height);
  19. //CanvasSprite.Clear(new Color(1, 1, 1, 0.2f));
  20. CanvasSprite.GlobalPosition = position;
  21. root.AddChild(CanvasSprite);
  22. }
  23.  
  24. /// <summary>
  25. /// 将世界坐标转为画布下的坐标
  26. /// </summary>
  27. public Vector2 ToImageCanvasPosition(Vector2 pos)
  28. {
  29. return pos - CanvasSprite.GlobalPosition;
  30. }
  31.  
  32. public void Destroy()
  33. {
  34. if (IsDestroyed)
  35. {
  36. return;
  37. }
  38.  
  39. IsDestroyed = true;
  40. }
  41. }