2011-04-04 96 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方法。這是最便宜的方式。

相關問題