Как добавить границу между каждым кадром в таблице спрайтов? - PullRequest
1 голос
/ 12 июля 2020

Я хотел бы выяснить, как я могу добавить границу в 1 пиксель между каждым кадром, который генерирует мой создатель таблицы спрайтов, может ли кто-нибудь помочь?

Функция ниже берет массив изображений и превращает их в таблица, заполненная растровыми изображениями.

Предполагается, что программа берет гифку и превращает ее в несколько таблиц спрайтов, чтобы их можно было отобразить в игровом движке. Эта часть работает нормально, но я бы хотел добавить границу в 1 пиксель между каждым кадром.

public Bitmap[] combineFrames(Image[] images, int columns)
        {
            int rows = columns;
            int imagesPerSheet = rows * columns;
            int sheets = (int)Math.Ceiling((double)images.Length / imagesPerSheet);
            Bitmap[] mapTable = new Bitmap[55]; //55 being the max #sheets 
            for (int x = 0; x < sheets; x++)
            {
                Bitmap bitmap = new Bitmap(images[0].Width * columns, images[0].Height * rows);

                Graphics graphics = Graphics.FromImage(bitmap);
                int L = 0;
                int remainingNFrames = (images.Length - (imagesPerSheet * x));
                if (remainingNFrames < imagesPerSheet)
                {
                    L = remainingNFrames;
                }
                else
                {
                    L = imagesPerSheet;
                }
                for (int i = 0; i <= L; i++)
                {
                    int formulizedProduct = imagesPerSheet * (x) + (i);
                    if (formulizedProduct == images.Length) { break; } //should always be length - 1
                    Image image = images[formulizedProduct]; //16*x+i
                    int X = (image.Width * ((i - 1) % columns));
                    int Y = (image.Height * (int)((double)(i - 1) / columns));
                    graphics.DrawImage(
                      image,
                      X, //I feel like I'd have to adjust this part and the part below, but I'm not really sure.
                      Y
                    );
                }
                
                mapTable[x] = bitmap;
            }
            return mapTable;

        }

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...