2013-02-10 75 views
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的预期黑色矩形,我已经改变了这些数字来填充矩形,也因此这不是问题。

任何人都知道我在做什么错了?所有帮助将非常感谢!

在此先感谢

回答

0

答案是:其实没有什么错与上面的代码,而我是通过不正确的文件路径给另一个函数。我的坏,谢谢!