我一直在尝试为我正在使用的游戏做一些地图的东西。我正在寻找显示 9 个地图文件(我已经阅读并处理了这些文件,并且有一个将这些地图文件转换为位图对象的函数)。
基本上我有一个位图数组和一个大位图。每个小位图为 256x256,大位图为 768x768,我想以正确的偏移量绘制它们(所以所有位图都排成一行,每个位图都设计为其前任旁边,直到行尾,此时有一列用于开始下一个 3,依此类推)。
我现在在做什么:
for (int i = 0; i < 9; i++)
{
bmpList[i] = getMapFile(sb[i].ToString());
}
using (Graphics g = Graphics.FromImage(bmp))
{
g.DrawImage(bmpList[0], 256, 0, 256, 256);
g.DrawImage(bmpList[1], 512, 0, 256, 256);
g.DrawImage(bmpList[2], 0, 256, 256, 256);
g.DrawImage(bmpList[3], 256, 256, 256, 256);
g.DrawImage(bmpList[4], 512, 256, 256, 256);
g.DrawImage(bmpList[5], 0, 512, 256, 256);
g.DrawImage(bmpList[6], 256, 512, 256, 256);
g.DrawImage(bmpList[7], 512, 512, 256, 256);
g.DrawImage(bmpList[8], 0, 0, 256, 256);
}
结果是 bmp 只是一个空白图像(当我将其转换为 Image.Source 时,它什么也不显示。为了证明其余代码我已经这样做了:
Rectangle rect = new Rectangle();
rect.Height = 256;
rect.Width = 512;
rect.X = 0;
rect.Y = 0;
Objects.Colour color = new Objects.Colour();
color = colourlist[0];
Graphics.FromImage(bmp).FillRectangle(new SolidBrush(Color.FromArgb(color.r, color.g, color.b)), rect);
它按预期绘制了一个黑色矩形,高度为 256,宽度为 512。我也更改了这些数字以填充矩形,所以这不是问题。
有人知道我在做什么错吗?所有帮助将不胜感激!
提前致谢