使用DirectX或OpenGL的C#2D矢量图形游戏?

时间:2010-05-15 06:12:53

标签: c# opengl vector directx

因为我已经用C#做过任何游戏编程已经有一段时间了,但我最近有一个错误要回到它,我想要一些关于我应该使用什么配置的意见。

我想使用C#,因为这是我用于工作的东西,并且变得熟悉。我过去曾使用过DirectX和OpenGL,但主要是使用3D,但现在我有兴趣编写一个带有所有矢量图形的2D游戏,类似于几何战争的外观或旧的星球大战街机游戏。

我感兴趣的要点:
•易于使用/实施。
•易于记忆。 (我计划马上进行很多工作)
•看起来不错,我不希望曲线看起来像素化 •也许是一些很好的效果,如发光或粒子。

我对所有建议持开放态度,甚至可能是我没有想过的......

提前致谢!

7 个答案:

答案 0 :(得分:11)

如果您刚刚开始并且已经拥有C#背景,为什么不试试XNA?你肯定能够在这里利用你的C#技能

http://creators.xna.com http://creators.xna.com/en-US/downloads

答案 1 :(得分:3)

我使用SlimDX进行C#图形编程,我更喜欢XNA。

http://slimdx.org/

答案 2 :(得分:1)

TBH你使用什么并不重要。 OpenGL,SlimDX或XNA。他们都会和彼此一样复杂(或者不是这样)。

答案 3 :(得分:1)

您可以考虑使用Axiom引擎,它是Ogre3D的C#端口。它是更高级别,您可以通过XNA或OpenGL渲染图形,只需对代码进行很少或不进行任何更改。它还可以处理键盘和鼠标输入(通常是单独的 - 例如,通过Windows上的DirectInput或Linux上的SDL)。

答案 4 :(得分:1)

您也可以考虑使用基于OpenGL的TAO Framework并且相当不错。但是你必须自己编写2D引擎。它也适用于Mono

答案 5 :(得分:1)

我用C#包装器创建我的OpenGL引擎,因为我也喜欢C#。令人遗憾的是管理语言在图形方面非常慢,这就是为什么我总是在C ++中使用OpenGL,将其编译为DLL并使用interop从C#获取。如果你有任何机会不喜欢DirectX而不是我建议你远离XNA。我认识的每个人都对此感到非常失望并转而回到C ++(OpenGL)+ C#。

答案 6 :(得分:1)

因为你已经知道C#我会使用XNA或Unity。虽然有更快的语言和中间件,但它们可能足够快。两个框架都具有您需要的必要功能。