2017-02-09 75 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; 
}