diff --git a/DungeonShooting_Godot/scene/test/TestMask.tscn b/DungeonShooting_Godot/scene/test/TestMask.tscn
index 2fbff95..19d360a 100644
--- a/DungeonShooting_Godot/scene/test/TestMask.tscn
+++ b/DungeonShooting_Godot/scene/test/TestMask.tscn
@@ -2,9 +2,8 @@
 
 [ext_resource type="Script" path="res://src/test/TestMask.cs" id="1_0yip6"]
 
-[node name="TestMask" type="Node2D"]
+[node name="TestMask" type="Node2D" node_paths=PackedStringArray("PolygonNode")]
 script = ExtResource("1_0yip6")
+PolygonNode = NodePath("Polygon2D")
 
-[node name="Sprite2D" type="Sprite2D" parent="."]
-modulate = Color(0, 0, 0, 1)
-centered = false
+[node name="Polygon2D" type="Polygon2D" parent="."]
diff --git a/DungeonShooting_Godot/src/test/TestMask.cs b/DungeonShooting_Godot/src/test/TestMask.cs
index 9679da0..99bcaf1 100644
--- a/DungeonShooting_Godot/src/test/TestMask.cs
+++ b/DungeonShooting_Godot/src/test/TestMask.cs
@@ -1,36 +1,63 @@
 using Godot;
 using System;
+using System.Linq;
+using Godot.Collections;
 
 public partial class TestMask : Node2D
 {
-	private Sprite2D Sprite;
-	private Image _image;
-	private ImageTexture _texture;
+	[Export]
+	public Polygon2D PolygonNode;
 
-	private Image _maskImage;
-	private Grid<int> _grid;
-	
+	public Array<Vector2[]> Result = new Array<Vector2[]>();
 	public override void _Ready()
 	{
-		Sprite = GetNode<Sprite2D>("Sprite2D");
-		var size = DisplayServer.WindowGetSize();
-		_image = Image.Create(size.X, size.Y, false, Image.Format.Rgba8);
-		//_image.Fill(Colors.Black);
-		_texture = ImageTexture.CreateFromImage(_image);
-		Sprite.Texture = _texture;
-		_maskImage = ResourceManager.Load<Texture2D>(ResourcePath.icon_png).GetImage();
-		//Godot.c
-		//_grid.set
+		//Geometry2D.
+		// var point = new Vector2[]
+		// {
+		// 	new Vector2(0, 0),
+		// 	new Vector2(0, 500),
+		// 	new Vector2(500, 500),
+		// 	new Vector2(500, 0)
+		// };
+		// Result = Geometry2D.ClipPolygons(point, new Vector2[]
+		// {
+		// 	new Vector2(20, 20),
+		// 	new Vector2(20, 100),
+		// 	new Vector2(90, 50),
+		// });
+		//PolygonNode.Polygon = clipPolygons[0];
 	}
 
-
 	public override void _Process(double delta)
 	{
-		if (Input.IsMouseButtonPressed(MouseButton.Left))
+		if (Input.IsActionJustPressed("fire"))
 		{
-			var usedRect = _maskImage.GetUsedRect();
-			_image.BlendRect(_maskImage, usedRect, GetLocalMousePosition().AsVector2I() - usedRect.Size / 2);
-			_texture.Update(_image);
+			var position = GetGlobalMousePosition();
+			Result.Add(new Vector2[]
+			{
+				new Vector2(position.X, position.Y),
+				new Vector2(position.X + 50, position.Y),
+				new Vector2(position.X + 50, position.Y + 50),
+				new Vector2(position.X, position.Y + 50),
+			});
+			// Geometry2D.IsPolygonClockwise()
+			// Geometry2D.MergePolygons()
 		}
+		QueueRedraw();
+	}
+
+	public override void _Draw()
+	{
+		if (Result != null)
+		{
+			foreach (var vector2s in Result)
+			{
+				var list = vector2s.ToList();
+				list.Add(vector2s[0]);
+				DrawPolyline(list.ToArray(), Colors.Red);
+			}
+			//DrawColoredPolygon(Result[1], Colors.Red);
+		}
+		
 	}
 }