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

첫 번째 조건이 작동 .. 나는 경계를 추가 할, 그래서 이미지는 캔버스의 높이로 뷰포트 .. 이미지가 조정됩니다 (높이)를 떠나지 않을 것이다, 그래서 난 그냥 왼쪽 및 오른쪽 테두리를 추가 할 필요가 하지만 두 번째 이유는 모르겠다. 이유는 모르겠다.

if planTranslate.X > maxX 전에 if planTranslate.X < 0 이미지가 뷰포트의 오른쪽에서 정지하지만 왼쪽으로 계속 진행한다. 사용 :

어떤 제안이나 도움

크게

+7

제안 값 디버거를 실행하고 런타임에 변수 값을 확인하십시오. –

+5

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; 
} 
관련 문제