我正在C#中制作一个回合制的自上而下的游戏。图形要求非常简单:它完全是2D,需要绘制从图形文件中获取的一些图像(可能首先旋转它们),绘制线条图以形成十六进制网格,以及将文本放置在屏幕上任何位置的能力。
我想知道做这些图形的最佳API是什么。 XNA是否过度杀戮,有什么更合适的吗?谢谢(我在.net中没有图形或游戏开发的经验,所以不要害怕愚蠢的任何答案)。
答案 0 :(得分:3)
我建议使用XNA。如果你不想要XNA的一些开销,我发现SlimDX是一个非常好的小框架。他们还提供了一些基本的游戏类来使这类事情变得容易。
直接在WPF中绘制图形也相当容易,但以后更难以扩展。通过XNA和SlimDX,您可以访问着色器,对Alpha混合进行非常精细的控制,以及在需要时可以轻松将部分扩展到3D中。
答案 1 :(得分:2)
我之前使用过Farseer Physics引擎非常酷且非常容易拾取(我是企业开发人员,而不是游戏开发人员)。它适用于Silverlight,因此您实际上可以使您的游戏基于Web。我建议使用Silverlight或WPF for 2D。
答案 2 :(得分:2)
我会推荐WPF。加载图形并移动它们应该相当容易。由于WPF也是基于矢量的,因此您的线条图是直截了当的。
XNA将是下一步。对精灵图形的强大支持,还可以访问着色器。
答案 3 :(得分:1)
如果它听起来很简单,甚至不是实时的,也许你不需要任何这些东西。即使没有游戏引擎,绘制十六进制网格和一些图像也不应该很难。也许WPF对此有好处。
答案 4 :(得分:1)
根据您的要求,您可以使用普通的C#和GDI(用于2d rastering)。然而,学习XNA很容易,一旦你决定进行实时游戏(2d或3d),它将很好地为你服务。无论哪种方式都很有趣,如果XNA在您开始时似乎很复杂,只需回到GDI。制作游戏应该像玩游戏一样有趣:)
答案 5 :(得分:0)
答案 6 :(得分:0)
您可以通过在System.Drawing
命名空间内使用类来完成此操作。 XNA
对于这种类型的东西来说肯定是矫枉过正的。此外,您还会为您的小游戏介绍许多依赖项,这对您的游戏玩家来说可能是不受欢迎的事情。
答案 7 :(得分:0)
查看Unity 3D - 它基于C#,可以用于2D。它可能是矫枉过正(包括价格),但对于游戏开发来说,这通常是巨大的帮助。