2010-11-09 63 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