2013-01-24 52 views
6

由於我的學校項目我必須使用Windows窗體創建遊戲。如何使用C#Windows窗體創建流暢的動畫?

我決定創建一個2D賽車遊戲。所以現在我需要移動汽車圖像。 要移動它,我嘗試使用KeyDown事件來動畫汽車,但是動畫確實是Faltering .. 那麼是否有其他方法來創建動畫?或者是否有可能以某種方式將其解決? (對於汽車,我使用停靠在窗體上的PictureBox,並在其繪畫事件中將車輛重新繪製在右窗口位置。)

+0

我建議你閱讀雙緩衝。 – lahsrah

+0

相當大的話題。這個線程可能會提供一些指針:http://stackoverflow.com/questions/188349/simple-animation-using-c-windows-forms –

+0

發佈你到目前爲止所做的。 –

回答

5

這篇文章應該可以解決你的問題: simple-animation-using-c-windows-forms

他詳細介紹他是如何繞到在Windows窗體中的編碼動畫和介紹一些您的問題。如果這樣不能解決問題,請使用一些XNA庫查找Freeman說的。

2

從您提供的細節中,我可以這樣說,如果您希望創建一個迷你遊戲,我會建議你使用WPF和一些XNA庫,因爲WinForms並不是真的被切出來讓一個非常有吸引力的圖形體驗,而是它傾向於創建簡單的GUI工具。有時候甚至不需要加倍緩衝幫助很大。

+0

它爲SCHOOL項目...我不能使用任何其他方式.. –

+0

一些XNA庫也可以用於Windows窗體在這種情況下,這些庫是專門設計用於優化管理運行時的圖形渲染。 – Freeman

0

以及可以使一個運動的動畫系統

 int x = pictureBox1.Location.X; 
     int y = pictureBox1.Location.Y; 
     if (e.KeyCode == Keys.Right) x += 1; 
     else if (e.KeyCode == Keys.Left) x -= 1; 
     pictureBox1.Location = new Point(x, y); 

,使其更快改變X + = 1的x = 1和y + = 1 Y- = 1;更大的數字,如y x- = 3; 所以在這個鱈魚,你是你的箭頭鍵,但只有左和右,因爲你將駕駛前鋒再次所以你只能左右移動