如何在没有Color的情况下绘制spritebatch?

时间:2014-07-22 15:58:36

标签: xna 2d textures draw xna-4.0

我正在绘制像这样的Texture2D

//background_texture is white in color
spritebatch.Draw(content.Load<Texture2D>("background_texture"), 
     new Rectangle(10, 10, 100, 100),
     Color.Red)

纹理是白色的;但是,在屏幕上它显示为红色。

为什么绘制方法需要颜色?
如何简单地绘制纹理,只有纹理没有Color.something扭曲图形?

3 个答案:

答案 0 :(得分:3)

看一下这里的文档: http://msdn.microsoft.com/en-us/library/ff433986.aspx

你想尝试Color.White,颜色的附加参数通常是指色调,而白色“色调”应该显示没有色彩的精灵

答案 1 :(得分:0)

Color.White是不必要的,因为在默认的精灵着色器中它看起来像这样:

PixelShader .... { ....

返回纹理*颜色; }

其中color是从spritebatch.Draw中的Color定义的Vertex着色器给出的Color ...如果它是null,black,它将创建不可见的sprite。整点是你设置每个顶点的顶点颜色,用作为精灵设置的纹理的乘法。

答案 2 :(得分:0)

Color.White不会改变图像的颜色。使用

spritebatch.Draw(content.Load<Texture2D>("background_texture"), 
 new Rectangle(10, 10, 100, 100),
 Color.White);

而不是Color.Red,它应用了色彩 注意:小心。 Intellisense会想要制作这个颜色。小麦,所以一定要在击中空格之前输入前3个字母。