2011-03-31 82 views

回答

5

纹理处理器有一个属性,用于指定背景透明度的颜色。

在解决方案资源管理器中选择您的精灵(它应该在您的内容项目中),然后查找属性检查器。你应该看到'内容处理器:纹理 - XNA框架'。展开该部分,根据需要更改“颜色关键颜色”。默认值是品红色/亮粉色(0xFF00FF)。

1

您可以创建一个内容处理器,为您做到这一点。一个简单的纹理处理器的Here is an example。这是预乘alpha(XNA 4.0已经做了,但在3.1中有用)。

您可以轻松修改它以读取第一个像素并清除所有具有匹配值的像素。事情是这样的:

Color m = bitmap.GetPixel(0, 0); 
    for (int y = 0; y < bitmap.Height; y++) 
    { 
     for (int x = 0; x < bitmap.Width; x++) 
     { 
      if (m == bitmap.GetPixel(x, y)) 
       bitmap.SetPixel(x, y, Color.Transparent); 
     } 
    } 

把这个新的Windows库项目,将其添加为您的内容项目的引用,建立它一次,你应该能够从处理器选项中选择它的属性窗格(F4)为您的纹理。

当然,如果你所有的精灵都具有相同的背景颜色,jv42的答案更容易。

+0

+1完全同意。如果需要“动态”,则创建一个内容处理器。如果颜色已知,则使用默认值。 – jv42 2011-03-31 13:44:13