2013-10-17 25 views
1

我的動畫導彈移動在我的Windows窗體應用程序中有問題。我希望導彈每五秒鐘移動0.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

我不相信WinForm的是一個很好的候選創造遊戲。如果你真的想創造遊戲,請使用一個好的遊戲框架。 –

+0

@Steve B:WinForms適合創建簡單的遊戲。如果你剛剛學習,肯定是一個合理的開始。 –

+0

XNA不夠簡單嗎? –

回答

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(); 
+0

謝謝!作品! –

+1

@MarcinZalas:那麼你也可以將它標記爲已接受的答案,這樣問題就不會再出現在問題列表中。 –