2017-02-09 71 views
-1

我遇到了if語句真的很奇怪的問題。我在畫布上得到了圖像,我想用鼠標/觸摸移動/拖動。圖像的運動正常工作。我想補充的界限,使圖像永遠不會離開視..圖像縮放(高度)帆布的高度,所以我只需要添加左側和右側邊框..c#multiple如果語句無法正常工作

if (planTranslate.X < 0) 
{ 
    planTranslate.X = 0; 
} 
else planTranslate.X = startPosition.X - vector.X; 

if (planTranslate.X > maxX) 
{ 
    planTranslate.X = maxX; 
} 
else planTranslate.X = startPosition.X - vector.X; 

第一個條件按預期工作,但第二不,我不知道爲什麼..

當我把if planTranslate.X > maxX之前if planTranslate.X < 0 圖像停止在視口的右側,但繼續往左走。

任何建議或幫助將不勝感激..提前THX ..

+7

建議:使用調試器並在運行時檢查變量值。 –

+5

你正在用你的elses覆蓋你的if語句 –

+2

我該怎麼做:首先計算新的planTranslate.X;然後確保新值介於0和maxX之間。 –

回答

1

看來你只需要簡單地計算差值,然後檢查最大/最小值

planTranslate.X = startPosition.X - vector.X; 

if (planTranslate.X < 0) 
{ 
    planTranslate.X = 0; 
} 

if (planTranslate.X > maxX) 
{ 
    planTranslate.X = maxX; 
}