0

我一直在尝试为我正在使用的游戏做一些地图的东西。我正在寻找显示 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。我也更改了这些数字以填充矩形,所以这不是问题。

有人知道我在做什么错吗?所有帮助将不胜感激!

提前致谢

4

1 回答 1

0

答案是上面的代码实际上没有任何问题,而且我错误地将文件路径传递给了另一个函数。我的错,还是谢谢!

于 2013-02-10T14:23:02.827 回答