2011-04-04 91 views
3

我试图在C#中为图像制作动画。基本上,我想拍摄一张图像并将其连接到另一个功能,并基于1到10的比例,使图像向上或向下移动。默认情况下,图像将从1开始。我已经搜索并找到了使图形在屏幕上上下移动但不是实际图像的方法。图像很小,例如60x60像素。我觉得这应该很简单,但我还没有弄明白。我想只是在Windows窗体上放置一个图像,然后基本上它会向上或向下移动窗体的y轴,但我希望它平稳移动。如何在C中对图像进行动画处理#

好吧,我能够钩一个按钮,直到定时器功能,并让按钮顺利上下移动屏幕。该按钮必须在程序运行期间保持移动。但是,我很难编写一个函数来停止定时器和图像(按钮),一旦图像到达某个位置就不会移动。没有这个,定时器继续,图像(按钮)移出屏幕。我试着搞乱button.Location.Y函数,但我还没有得到它的正确工作。任何人都可以请指教?谢谢。哦,一旦图像(按钮)到达192或447的Y位置,它应该停止移动。

什么,我有一个例子:

private void timer2_Tick(object sender, EventArgs e) 
    { 
     button2.Top = button2.Top + 1; 
     if (button2.Location.Y == button2.Location.Y - 192) 
     { 
      timer2.Stop(); 
      timer3.Stop(); 
     } 
     //if (timer_limit < 100) 
     //{ 
     // button2.Top = button2.Top + 1; 
     // timer_limit++; 
     //} 
     //else 
     //{ 
     // timer2.Stop(); 
     //} 
    } 
+1

这是WinForms? WPF? XNA? Silverlight的? – Nate 2011-04-04 19:12:10

+0

你不会想要使用WinForms,因为它根本无法处理移动控件。 WPF将是这里走的路。 – 2011-04-04 19:20:26

+1

Nate,这不是上述情况。有人建议我使用计时器在窗体上移动一个对象。 – Eurasianman 2011-04-04 19:58:14

回答

2

几种方法可以做到这一点。您可以使用PictureBox并更改其Location属性。或者,您可以在窗体的OnPaint()覆盖中绘制图像,并将参数更改为e.Graphics.DrawImage()。然后您必须调用Invalidate()来强制运行OnPaint方法。这是最便宜的方式。

相关问题