Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / image / ImageRenderSprite.cs
@小李xl 小李xl on 19 Jun 2023 783 bytes 换一种解渲染大量sprite的决方案

using Godot;

public class ImageRenderSprite
{
    public Sprite2D Sprite { get; }

    public ImageTexture Texture { get; }

    private static Image _emptyImage;
    private static Image EmptyImage
    {
        get
        {
            if (_emptyImage == null)
            {
                _emptyImage = Image.Create(1, 1, false, Image.Format.Rgba8);
            }
    
            return _emptyImage;
        }
    }

    public ImageRenderSprite()
    {
        var sprite = new Sprite2D();
        Sprite = sprite;
        Texture = ImageTexture.CreateFromImage(EmptyImage);
        sprite.Name = "RenderSprite";
        sprite.Texture = Texture;
        sprite.Centered = false;
    }

    public void SetImage(Image image)
    {
        Texture.SetImage(image);
    }
}