我是XNA的初学者,正在尝试使用我的新kinect for windows,因此决定遵循教程:http://digitalerr0r.wordpress.com/2011/06/20/kinect-fundamentals-2-basic-programming/
做完这个之后,我注意到所有的颜色都是淡蓝色。例如,rgb 20,20,20的颜色看起来像深蓝色而不是深灰色。
我注意到GraphicsDevice.Clear()
正在使用Color.CornflowerBlue
。我尝试将其更改为Color.Black
,确定所有的东西现在都是黑色的。
GraphicsDevice.Clear(颜色)与屏幕上绘制的颜色之间的关系是什么?
这是我的绘图功能:
/// <summary>
/// This is called when the game should draw itself.
/// </summary>
/// <param name="gameTime">Provides a snapshot of timing values.</param>
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.Black);
spriteBatch.Begin();
spriteBatch.Draw(kinectRGBVideo, new Rectangle(0, 0, 640, 480), Color.White);
spriteBatch.DrawString(font, connectedStatus, new Vector2(20, 80), Color.Black);
spriteBatch.End();
base.Draw(gameTime);
}
答案 0 :(得分:3)
(根据要求,以答案的形式。)
尝试在调用spriteBatch.Begin()方法时更改BlendState。这决定了颜色在彼此上方绘制时的混合方式。
我不确定为什么BlendState.Opaque
将文本显示为块,但我的猜测是这种混合状态不支持alpha。因此,文本周围的透明区域转动,不透明,使文本看起来像一个矩形。我现在没有工具来检查这个猜测,所以我可以验证它。