делал редактор 2D-карт для своей игры-платформера с квадратными плитками, когда понял, что действительно могу использовать редактор изображений с его возможностями перекрашивать соседние пиксели и многое другое, поэтому я решил, что должен попытаться прочитать нарисованный уровень приложением, которое будет затем конвертируйте его в облегченный формат.
Я не уверен, что использование растрового формата является обязательным для таких вещей, но я думаю, что чтение определенного пикселя будет проще, чем, например, с PNG.
Итак, моя цель — открыть изображение, перебрать каждый пиксель,ищите те, цвета которых соответствуют моей схеме плитки, и помещайте соответствующую плитку в массив блоков.
Примечание. :У меня уже есть облегченный формат, поэтому мне нужно только считывать значения пикселей в массив.
Bitmap myBitmap = new Bitmap(@"input.png");
for (int x = 0; x < myBitmap.Width; x++)
{
for (int y = 0; y < myBitmap.Height; y++)
{
Color pixelColor = myBitmap.GetPixel(x, y);
// things we do with pixelColor
}
}
Bitmap myBitmap = new Bitmap(@"input.png");
for (int x = 0; x < myBitmap.Width; x++)
{
for (int y = 0; y < myBitmap.Height; y++)
{
// Get the color of a pixel within myBitmap.
Color pixelColor = myBitmap.GetPixel(x, y);
string pixelColorStringValue =
pixelColor.R.ToString("D3") + " " +
pixelColor.G.ToString("D3") + " " +
pixelColor.B.ToString("D3") + ", ";
switch (pixelColorStringValue)
{
case "255 255 255":
{
// white pixel
break;
}
case "000 000 000":
{
// black pixel
break;
}
}
}
}