2010-11-09 61 views
3

最终,当我完成我写的游戏时,我想将它移植到XNA。目前我正在使用C++和OpenGL。我的问题很简单:XNA是否支持OpenGL(如果需要,我可以从C++切换到XNA语言)?XNA是否支持OpenGL

+4

您的反微软态度很荒谬。特别是当你谈论XNA和.NET/C#时,它们被广泛认为是各自领域的最佳技术。除了“我讨厌微软”之外,你真的需要提出更好的选择平台的标准。 – 2010-11-10 00:49:47

+0

我的歉意。我确实倾向于表达我的观点太难(轻描淡写?)。我会编辑我的OP,并保留我的个人意见。抱歉。 – Bojangles 2010-11-10 15:36:44

回答

3

XnaTouch实现在iPhone上运行,因此在底层使用OpenGL ES。它通过Mono项目(特别是iPhone的MonoTouch)使用C#。这可以想象将其用作将XNA移植到不支持DirectX的其他平台(例如:Mac,Linux)的基础。 (注:在我的经验中XnaTouch执行不是很好)

显然,在Xbox 360不使用OpenGL在所有 - 它使用DirectX - 你没有得到这个选项。

我甚至不明白你为什么想要使用XNA,但是在OpenGL下,在Windows上,现有的XNA实现工作的很好。

+0

我只是有点担心学习一个全新的图形库,但我想我有没有选择。这是一个耻辱XNA或XBox不支持OpenGL - 它会使它对我认为更小的开发者更有吸引力。感谢您的建议:) – Bojangles 2010-11-10 15:34:23

+0

@JamWaffles幸运的是,改变图形库就像改变编程语言一样。基本概念都是一样的 - 它只是顶点缓冲区和索引缓冲区,着色器和渲染状态等等。 (不可否认,OpenGL可以让你使用XNA不支持的即时模式等事情,但是这些东西太过时了,太慢了,以至于你不应该使用它们)。 – 2010-11-11 00:25:30

+0

这就是我在做所有OpenGL的工作,直到20几秒钟前,当我读你的帖子!我将使用更多的顶点缓冲区和绝对着色器 - 它们看起来很酷,但我还没有设法绕过GLSL。从我在这篇文章中读到的内容看,在我移植到XNA之前,看起来有一段时间。应该最终到达那里! – Bojangles 2010-11-11 16:18:32

5

不,不是直接。 XNA构建于DirectX之上。

但是,如果你想使用OpenGL的包装,你可以分离出一个单独的窗口。您需要使用非官方的绑定,才能做到这一点。然后在这里使用XNA构造。我一直在做这样的项目,并不会推荐它。有两种使用XNA的方法。书中的方法对大多数人来说太有限了,或者相反。 '其他'方式不使用基础游戏类和处理自己的游戏逻辑。使用另一种渲染方法的第二种方法是太多的工作,没有真正的回报。

我建议你的游戏逻辑和图形是分开的。如果您决定在以后的日期移植,那么转换应该更容易从C++转换为C#。

此外,XNA不是一种语言。这是一个使用C#构建的框架。

+0

Bah!废话。好吧。看起来XBox不会得到我的任何代码,这是我猜的好。另外,感谢额外的信息 - OpenGL的实现看起来很可怕!至于XNA不是一种语言,我知道它使用.NET,但不知何故忘了在我的OP中提到。非常感谢:) – Bojangles 2010-11-09 20:10:53

+3

不客气。尽管如此,我鼓励你查看XNA。我曾经是一个硬核C++的坚果,但与XNA的几个星期,你会爱上它。与C++相比,加上C#是一种乐趣。目前没有帮助你,但值得一玩。 – Finglas 2010-11-09 20:17:43

+0

好点。当我有一个工作的C++/OpenGL实现我的游戏时,我肯定会有一个玩法(想想几年:-P) – Bojangles 2010-11-10 15:35:44