我想在C#中为DirectX编程,我有DirectX SDK, 应该选择什么样的项目? Windows窗体或....
答案 0 :(得分:3)
你应该先问问自己:我的项目的目的是什么?
如果您打算使用精美的2D-3D视觉效果构建应用程序,那么您只需要学习WPF。
另一方面,如果你想构建需要大量资源的游戏,XNA就是你的选择。
在XNA上构建应用程序非常痛苦,因为XNA是为游戏而构建的。 关于使用WPF构建游戏也是如此。
在这两种情况下,您都不需要与DirectX本地通信(可以通过C ++完成)。除非您正在构建低级渲染引擎或(非常)高预算游戏。
答案 1 :(得分:2)
您应该使用XNA,这是Managed DirectX C#
的替代品Microsoft XNA('XNA未隐藏)是一组工具,具有Microsoft提供的托管运行时环境,有助于计算机游戏开发和管理。 XNA试图让游戏开发者免于编写“重复的样板代码”,并将游戏制作的不同方面纳入单一系统。
除非你想只渲染窗口,但WPF可能是最好的选择。请参阅此blog帖子。
答案 2 :(得分:1)
XNA是一个面向游戏的框架,允许您定位多个硬件轻松(Windows
,Xbox 360
,Zune
和现在Windows Phone 7
使用版本4)使用.NET语言,如C#。
请注意,XNA与DirectX SDK之间没有1-1关系,例如,它不会暴露D3D10或D3D11或D3DX中可以找到的某些接口。
如果您正在寻找类似于原生DirectX API的东西,您有3个选项:
Windows® API Code Pack for Microsoft® .NET Framework: 包装了一堆Windows本机库,如DirectX,因此可以从托管代码中使用它们。请注意,它不会暴露D3D10之前的API,例如D3D9。
SlimDX:同样的事情,但仅限于DirectX并将Direct3D从版本9暴露到11(SlimDX是一个与Microsoft无关的旁白项目)。
C++/CLI和DIY包装:除非你有特殊需要,否则我不推荐它。
最终的选择取决于您的需求。如果只是为了学习DirectX API而在C#中,我会说选择Windows API Code Pack或SlimDX。