Texture2D.GetData()返回所有透明颜色?

时间:2011-05-18 14:36:52

标签: c# colors xna sprite

嘿大家,我正在使用两个Texture2D对象的逐像素颜色比较,一个类看起来像这样:

public class MyClass
{
    Texture2D sprite;
    Vector2 position;
    float scale;
    Color[] spriteTextureData;
    public MyClass(Texture2D texture, Vector2 pos)
    {
        sprite = texture;
        position = pos;
        center = new Vector2(sprite.Width/2, sprite.Height/2);
        scale = 1;
        spriteTextureData = new Color[sprite.Width * sprite.Height];
        sprite.GetData(spriteTextureData);
        <breakpoint>
    }
}

我的问题是,当我调用sprite.GetData(spriteTextureData)时,我最终会得到一个全部为空的颜色数组(我的意思是“空”将是:{R:0 B:0 G:0 A:0})。对我来说奇怪的是,我一直在使用这个方法和几个不同的类,并且像素比较到目前为止一直在工作。这是给我带来问题的。如果我在GetData()调用之后立即放置一个NOOP并插入断点,它立即显示该数组为空。有什么建议?谢谢你的帮助!

更新:我尝试将实际图像文件更改为其他图像并正确加载颜色。看起来由于某种原因这个图像有问题...它们都是相同的文件类型,我不明白为什么这会导致问题。我会做更多的工作,看看能否提出解释。

0 个答案:

没有答案
相关问题