Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / image / ImageRenderSprite.cs
@小李xl 小李xl on 19 Jun 2023 783 bytes 换一种解渲染大量sprite的决方案
  1.  
  2. using Godot;
  3.  
  4. public class ImageRenderSprite
  5. {
  6. public Sprite2D Sprite { get; }
  7.  
  8. public ImageTexture Texture { get; }
  9.  
  10. private static Image _emptyImage;
  11. private static Image EmptyImage
  12. {
  13. get
  14. {
  15. if (_emptyImage == null)
  16. {
  17. _emptyImage = Image.Create(1, 1, false, Image.Format.Rgba8);
  18. }
  19. return _emptyImage;
  20. }
  21. }
  22.  
  23. public ImageRenderSprite()
  24. {
  25. var sprite = new Sprite2D();
  26. Sprite = sprite;
  27. Texture = ImageTexture.CreateFromImage(EmptyImage);
  28. sprite.Name = "RenderSprite";
  29. sprite.Texture = Texture;
  30. sprite.Centered = false;
  31. }
  32.  
  33. public void SetImage(Image image)
  34. {
  35. Texture.SetImage(image);
  36. }
  37. }