Newer
Older
DungeonShooting / DungeonShooting_Godot / src / test / TestMask.cs
@小李xl 小李xl on 21 Oct 2023 904 bytes 测试代码
  1. using Godot;
  2. using System;
  3.  
  4. public partial class TestMask : Node2D
  5. {
  6. private Sprite2D Sprite;
  7. private Image _image;
  8. private ImageTexture _texture;
  9.  
  10. private Image _maskImage;
  11. private Grid<int> _grid;
  12. public override void _Ready()
  13. {
  14. Sprite = GetNode<Sprite2D>("Sprite2D");
  15. var size = DisplayServer.WindowGetSize();
  16. _image = Image.Create(size.X, size.Y, false, Image.Format.Rgba8);
  17. //_image.Fill(Colors.Black);
  18. _texture = ImageTexture.CreateFromImage(_image);
  19. Sprite.Texture = _texture;
  20. _maskImage = ResourceManager.Load<Texture2D>(ResourcePath.icon_png).GetImage();
  21. //Godot.c
  22. //_grid.set
  23. }
  24.  
  25.  
  26. public override void _Process(double delta)
  27. {
  28. if (Input.IsMouseButtonPressed(MouseButton.Left))
  29. {
  30. var usedRect = _maskImage.GetUsedRect();
  31. _image.BlendRect(_maskImage, usedRect, GetLocalMousePosition().AsVector2I() - usedRect.Size / 2);
  32. _texture.Update(_image);
  33. }
  34. }
  35. }