Newer
Older
DungeonShooting / DungeonShooting_Godot / src / test / TestOptimizeSprite.cs
@小李xl 小李xl on 18 Jun 2023 1 KB 备份
using Godot;

public partial class TestOptimizeSprite : Node2D
{
    [Export()] public Texture2D[] ImageList;

    public override void _Ready()
    {
        ImageCanvas.MaxHandlerTime = 16;
        var scale = 10;
        var imageCanvas = new ImageCanvas(1920 / scale, 1080 / scale);
        imageCanvas.Scale = new Vector2(scale, scale);
        var delta = 360f / (15 * 8);
        var angle = 0f;
        for (int i = 0; i < 15; i++)
        {
            for (int j = 0; j < 8; j++)
            {
                //var texture = Utils.RandomChoose(ImageList);
                var texture = ImageList[6];
                var centerX = 0;
                var centerY = 0;
                //var angle = Utils.RandomRangeInt(0, 360);
                GD.Print($"x: {i}, y: {j}, angle: " + angle);
                imageCanvas.DrawImageInCanvas(texture,
                    //Utils.RandomRangeInt(0, imageCanvas.Width), Utils.RandomRangeInt(0, imageCanvas.Height),
                    10 + i * 10, 10 + j * 10,
                    angle, centerX, centerY, false
                );
                angle += delta;
            }
        }

        //var texture = ImageList[6];
        //imageCanvas.DrawImageInCanvas(texture, imageCanvas.Width / 2, imageCanvas.Height / 2, 0, 0, 0, false);
        //imageCanvas.DrawImageInCanvas(texture, imageCanvas.Width / 2, imageCanvas.Height / 2, 45, texture.GetWidth() - 1, texture.GetHeight() - 1, false);



        AddChild(imageCanvas);
    }


    public override void _Process(double delta)
    {
        ImageCanvas.UpdateImageCanvas((float)delta);
    }
}