2017-02-09 17 views
-1

if文で本当に奇妙な問題が発生しました。私はキャンバスに画像を持っています。マウス/タッチで移動/ドラッグしたい画像です。画像の動きはうまくいきます。予想通りc#multiple If文が正しく動作しない

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; 

最初の条件は作品..私は境界線を追加したいので、イメージはキャンバスの高さにビューポート..画像がスケーリングさ(高さ)を離れることはないだろうので、私はちょうど左と右の境界線を追加する必要がありますしかし、2番目の理由はありません。理由はわかりません。

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; 
} 
関連する問題