- using Godot;
- using System;
-
- public partial class TestMask : Node2D
- {
- private Sprite2D Sprite;
- private Image _image;
- private ImageTexture _texture;
-
- private Image _maskImage;
- private Grid<int> _grid;
-
- 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
- }
-
-
- public override void _Process(double delta)
- {
- if (Input.IsMouseButtonPressed(MouseButton.Left))
- {
- var usedRect = _maskImage.GetUsedRect();
- _image.BlendRect(_maskImage, usedRect, GetLocalMousePosition().AsVector2I() - usedRect.Size / 2);
- _texture.Update(_image);
- }
- }
- }