我正在使用旧的网络摄像头组件文件将网络摄像头视频源流式传输到Texture2D对象。
我需要有关代码的帮助,因为它已经过时了,Visual Studio 2010和XNA 4无法识别某些语法。
在方法BufferCB中,修改颜色的两行已过时。它说“类型或命名空间名称Color在命名空间中不存在Microsoft.XNA.Framwork.Graphics(你是否缺少程序集引用?)”。
这是功能:
public int BufferCB(double SampleTime, IntPtr pBuffer, int BufferLen)
{
byte[] bgrData = new byte[BufferLen];
Marshal.Copy(pBuffer, bgrData, 0, BufferLen);
Color[] colorData = new Color[BufferLen / 3];
for (int i = 0; i < colorData.Length; i++)
{
colorData[i] = new Microsoft.Xna.Framework.Graphics.Color(bgrData[3 * i + 2], bgrData[3 * i + 1], bgrData[3 * i]);
}
this.videoTexture.SetData<Microsoft.Xna.Framework.Graphics.Color>(colorData);
return 0;
}
for循环中的行和for循环后面的代码行都有Color问题。
另外,如何在我的游戏类中实例化这个类?
任何帮助都会很棒。 感谢
答案 0 :(得分:2)
错误从字面上描述了确切的问题。
Color
是XNA 4中Microsoft.Xna.Framework命名空间的一部分。请参阅:http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.color%28v=xnagamestudio.35%29.aspx
您可以使用4个构造函数实例化Color
。
Color color = new Color(r, g, b);
(其中rgb为红色/绿色/蓝色整数)
Color color = new Color(r, g, b);
(其中rgb是红/绿/蓝浮标)
Color color = new Color(r, g, b, a);
(其中rgb为红色/绿色/蓝色/ alpha整数)
Color color = new Color(r, g, b, a);
(其中rgb为红色/绿色/蓝色/ alpha浮动)