2013-07-20 146 views
0

我正在嘗試使用DirectX 10創建2D遊戲。我一直在研究如何開始創建這樣的事情。我發現了各種各樣的想法,例如使用着色器並堅持使用Direct3D,並且我看到有些人使用SFML等庫。我對DirectX相當陌生,想知道我應該用什麼來創建2D遊戲(着色器或庫)。着色器是我應該看看的東西,還是應該使用庫?2D DirectX 10遊戲開發

+0

SFML是2D不錯的選擇。您可以使用OpenGL,因爲它基於OpenGL。如果您使用DirectX,那麼您只需忽略z軸並正常處理其他所有事情並使用Ortho投影。我建議你學習着色器,因爲舊的方法「固定功能」正在被可編程管線所取代。 – Aleks

+0

我不確定你的意思是「忽略z軸」。從我所做的實驗中,當你將一個圖元渲染到一個屏幕上時,你必須聲明一個x,y和z,並且我假設它也可以轉換爲精靈和紋理。我將如何忽略z軸? – Charsmud

+0

既然你想做二維圖形,你只需將z設置爲0. z軸相關的唯一時間是在旋轉過程中,因爲你圍繞z軸旋轉。 (假設你的z是你的深度) – Aleks

回答

0

那麼如果你有興趣學習DirectX本身,你應該嘗試編寫你自己的2D引擎,它有一點經驗並不像看起來那麼難。但是如果你想直接參與遊戲開發,你可以看看一些引擎來照顧那部分。着色器可以真正增強場景(3D和2D),如果我是你,我肯定會使用它們,而不僅僅使用簡單的未處理紋理。大多數引擎不會從您那裏獲取着色器編程,因此無論如何您可能需要查看hlsl。 另外,我對幾種引擎和圖書館的經驗:在某些時候他們會結束,如果你對你的項目感興趣,你不想忍受這些限制。這就是爲什麼我會建議編寫你自己的引擎,你可以根據需要輕鬆擴展。

一個很好的出發點純粹的DirectX: http://www.rastertek.com/tutdx10.html(主要爲3D,但也涵蓋2D,你會發現是不是不同的)

+0

我正在考慮創建自己的引擎或庫,但我不知道從哪裏開始.....有什麼建議? – Charsmud

+0

以及我真的很喜歡rastertek。它基本上用於3D,但也有一個2D教程,正如Aleks指出的那樣,它基本上只是忽略z(設置爲0)並渲染爲正交。 – theCNG27