我一直在尝试为我正在使用的游戏做一些地图。我正在寻找显示9个地图文件(我已经阅读和处理过,并且有一个将这些地图文件转换为Bitmap对象的功能)。
基本上我有一个位图数组和一个大位图。每个小位图都是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。我也改变了这些数字以填充矩形,所以这不是问题。
任何人都知道我做错了什么?非常感谢所有帮助!
提前致谢
答案 0 :(得分:0)
答案是,实际上上面的代码没有任何问题,而且我正在将文件路径错误地传递给另一个函数。我的坏,谢谢!