2013-01-24 55 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; 所以在这个鳕鱼,你是你的箭头键,但只有左和右,因为你将驾驶前锋再次所以你只能左右移动