在texture2D中获取给定坐标中的颜色值

时间:2015-07-16 19:58:38

标签: c# xna

我用谷歌搜索了一段时间,但只是找到了如何做到这一点的反应,找到了基于颜色的坐标。

这可能已经在某个地方得到了回答,但它被埋没在所有其他回复之下。

-

所以,作为一个为我的游戏制作关卡编辑器的简单方法,我让游戏加载一个纹理,然后循环通过像素。纹理中的不同颜色等同于不同的对象。

其他一切工作正常,但我无法找到如何在给定的坐标中获得像素的颜色。

1 个答案:

答案 0 :(得分:1)

基本上您需要做的是使用Texture2D.GetData方法将纹理颜色信息存储到一维数组中

var colorTable = new Color[texture.Width*texture.Height];
        texture.GetData(colorTable);

然后访问一个特定的像素(比如X,Y),你需要做的就是从数组中获取相应的颜色,这样就可以了

var pixelColor=colorTable[texture.Width * Y + X];