2017-10-04 36 views
1

我寫了一個代碼,當點擊一個按鈕時,它會使圖片框移動。例如,右鍵使用此代碼:如何在c#中的子程序中更改操作?

private void btnRight_Click(object sender, EventArgs e) 
    { 
    //move right 
    if (stopThePlayer == true) 
    { 
     return; 
    } 
    else 
    { 
     x = x + speed; 
     RightBoundary(); 
     MovingSubprograms(); 
    } 
} 

不要擔心子程序。我想知道的是有沒有一種方法,我只能改變x = x + speed;部分。例如,在左邊的按鈕中,我想使它成爲x = x - speed。所以基本上我只是創建一個子程序,只改變代碼。那可能嗎?謝謝。

+0

位置屬性是一個點,這是基本的座標。所以從當前位置創建一個新點並根據功能添加和減去x,並將位置屬性設置爲該點簡單 – Ramankingdom

+0

您不會創建「子程序」。您將創建另一個處理btnLeft_Click事件的事件處理程序,並將執行您所說的內容(所有相同的代碼,除'x = x - speed'外),但實際上不重複代碼,將其放入單獨的函數中。 ..當然,這會把你帶到@JohnKoerner的答案。 – AgapwIesu

回答

1

最好的辦法是創建一個接受的,你想改變參數的函數:

private void MovePlayer(int offset) 
{ 
    //move right 
    if (stopThePlayer == true) 
    { 
     return; 
    } 
    else 
    { 
     x = x + offset; 
     RightBoundary(); 
     MovingSubprograms(); 
    } 
} 

private void btnRight_Click(object sender, EventArgs e) 
{ 
    MovePlayer(speed); 
} 

private void btnLeft_Click(object sender, EventArgs e) 
{ 
    MovePlayer(speed*-1); 
} 
+1

這很有道理,謝謝! – Qedized

相關問題