2010-06-02 42 views
3

我正在製作一個小型遊戲作爲一種測試項目,沒什麼特別的。我剛開始和正在處理圖形部分,但我不確定將圖形繪製到屏幕上的最佳方式。在C#中顯示遊戲圖形的最佳方向應用程序

這將有點像舊的塞爾達,非常簡單,使用位圖等。我開始考慮使用Drawing.Graphics和控件中的Handle畫一個圖片框控件,但這看起來很麻煩。我也不確定是否可以使用這種方法的雙緩衝。

我看着XNA,但現在我想用一種簡單的方法來顯示一切。

所以,我的問題。使用當前的C#窗口控件和框架,什麼是顯示遊戲圖形(即圖片框,建立自定義控件等)的最佳方法

編輯: 我將添加我目前如何繪製到圖片框。我有一個Tile對象,它只包含圖塊的像素(List< List< Color>> texture;),沒有其他的簡單說明。然後我繪製到PIC盒通過所述像素迭代,並使用使用刷子與當前像素的顏色,並通過一個尺度變量指定的大小的方法FillRectangle:

int scale = 5; 
for (int i = 0; i < texture.Width;) 
{ 
    for (int j = 0; j < texture.Height; ++j) 
    { 
     int x = i * scale; 
     int y = j * scale; 
     picBox.FillRectangle(new SolidBrush(currentPixelColor), new Rectangle(x, y, scale, scale)); 
    } 
} 

耶,相當繁瑣。任何建議或意見表示讚賞。

+0

我真的覺得你應該重新考慮使用XNA。一個簡單的覆蓋'Draw()'就足以在屏幕上繪製一個對象。另外它還有一些用於創建遊戲的實用方法,可擴展性等。 – 2010-06-02 17:39:02

+0

你可以擴展你爲什麼認爲這很麻煩嗎?如果你認爲GDI是微妙的,我不認爲XNA/DirectX/OpenGL /等將在簡單類別中有任何幫助。 – 2010-06-02 17:39:37

+0

XNA肯定比你自己繪製所有東西簡單和容易,但是結果是學習體驗更少了,更不用說它將你鎖定到XNA的做事方式。 – MusiGenesis 2010-06-02 17:43:40

回答

2

我建議,你再看看XNA和嘗試一些樣品。使用XNA進行簡單的遊戲非常簡單,只要您堅持使用2D。該框架在將所有細節包裝在易於理解的流程方面做得非常出色,您可以在這裏基本填充空白。

我在短短8小時內爲我的兒子做了一個完整(但非常簡單)的Xbox遊戲,沒有一點經驗。

如果移動到3D,事情會變得更加複雜,因爲您必須瞭解各種視圖模型,着色器等等,但對於2D來說,開始起來非常簡單。

2D的另一個優點是所需的工具更容易獲得。我用Photoshop做了所有圖形,聲音是使用Windows錄像機錄製的MP3和聲音。對於3D,您需要複雜的工具來構建和導出模型等等。

+1

我確實考慮過我可以在XBox上彈出遊戲的事實,這很棒,但如果我想要,我也想跨平臺。 XNA可以跨平臺嗎?還是我需要重新編碼我的項目以用於其他平臺? – 2010-06-02 17:57:53

+0

除非你指望Windows,Xbox,Zune和即將推出的Windows Phone作爲跨平臺。但是,由於設置有限,開發人員的體驗非常好。您使用Visual Studio並開發和調試在控制檯上運行的遊戲。這真的很順利imo。唯一的缺點是可以部署到Xbox的$ 100許可證。如果你只想做Windows遊戲,那就沒有許可證。 – 2010-06-02 18:03:51

+0

有沒有一個相當不錯的綜合教程或幫助網站學習XNA? – 2010-06-02 18:11:53

0

我真的相信XNA是迄今爲止我使用過的最簡單的遊戲設計框架之一。除此之外,您可以利用WPF在屏幕上繪製對象。

0

首先,我強烈建議使用XNA的DirectX遊戲開發...

但是,如果你不想XNA也不的DirectX幫助....那麼你將被迫使用.Net GDI+繪畫工具.....

通過這種方式,您可以通過GDI +畫點,線,圓,矩形,圓弧,位圖,文本和更多的(一切都-of課程 - 可用C#和.Net ...)

你可以做一個新的簡單控制(或使用現有的控件,如圖像框或窗體本身!),那麼你將不得不重寫它的OnPaint(PaintEventArgs e)函數...然後,你將用e.Graphics繪製任何你想要的......


例子:
Simple Tetris Game Tutorial in C#


編輯:
使用GDI +通過PI繪製像素xel圖片相當不錯!


更好的是自己繪製形狀(圓形,..等)

相關問題