我在Windows窗体应用程序中动画导弹移动有问题。我希望导弹每0.5秒移动5秒。每次我运行我的应用程序时我都看不到它,因为我使用空间射击导弹然后我看不到任何动画,只是导弹出现在窗口的底部。我试过线程并且使用thread.Sleep(1)
它工作正常,但我听说定时器更适合它。
我的代码如下:
this.Controls.Add(missile);
System.Timers.Timer t1 = new System.Timers.Timer();
t1.Interval = 500;
t1.Start();
while (missile.Location.Y > 0)
{
missile.Location = new Point(missile.Location.X, missile.Location.Y - 5);
}
t1.Stop();
答案 0 :(得分:2)
您需要将代码放在Timer
类的Elapsed
事件中,如:
this.Controls.Add(missile);
System.Timers.Timer t1 = new System.Timers.Timer();
t1.Interval = 500;
t1.Elapsed += (sender, args) =>
{
if (missile.Location.Y > 0)
{
missile.Location = new Point(missile.Location.X, missile.Location.Y - 5);
}
};
t1.Start();