2012-08-16 2 views
0

내 뇌가 절대 여기 튀긴다. 미안하지만 의심의 여지가없는 명백한 질문이지만 나는 나무의 나무를 볼 수 없다!C# 포인트 구매 시스템과 같이 변수를 줄이거 나 늘리십니까?

"포인트 풀"역할을하는 변수가 있습니다. numericupdown 컨트롤은이 포인트 풀에 영향을줍니다. 숫자를 늘리면 포인트 풀이 줄어들고 그 반대의 경우도 마찬가지입니다. 난 그냥 미리 ... 논리 :(

다음

이 가치가 무엇을 내 "코드"의 주위에

private void numJobSkill1_ValueChanged(object sender, EventArgs e) 
    { 

     int difference = (int)(numJobSkill1.Value - numJobSkill1.Minimum); 

     /* if (numJobSkill1.Value > numJobSkill1.Minimum) 
     { 

      POINTPOOL = POINTPOOL - 1; 

     } 
     else 
     { 
      POINTPOOL = POINTPOOL + 1; 
     } */ 

     lblPOINTPOOL.Text = PLAYERPOINTS.ToString(); 

    } 

덕분에 내 머리를 얻을 수 없습니다.

+0

무엇을하고 싶습니까? – aliboy38

+0

내 뇌가 튀었 어! numJobSkill1.Value 및 numJobSkill1.Minimum은 무엇이며 왜 차이를 int로 캐스트해야합니까? 질문은 무엇입니까? – JTMon

+0

확인을 위해. POINTPOOL = 100. numJobSkill = 5. jobskill이 10만큼 증가하면 POINTPOOL = 90이됩니다. jobskill이 7로 감소하면 POINTPOOL = 93이됩니다. –

답변

1

는 값이 있는지 여부를 확인하기 위해 . 증가 또는 마지막 값을 기억할 필요가 감소 된

// initialize this with the initial value of the UpDownControl 
private int _previousValue; 

private void numJobSkill1_ValueChanged(object sender, EventArgs e) 
{ 
    int currentValue = numJobSkill1.Value; 
    _pointPool -= currentValue - _previousValue; 
    _previousValue = currentValue; 
} 
+0

Daniel에게 감사드립니다. 거의 대부분 사용자가 스핀 상자를 클릭하는 대신 숫자를 입력 할 때 반응하도록 수정해야합니다. 다시 한 번 감사드립니다! –

+0

@HarryBall : 천만에요. 제 편집 내용을 확인하십시오. 문제가 해결 될 것입니다. –

0

나는 이것을 처리하는 가장 쉬운 방법은 반환 값이 TotalPointsAvailable - TotalPointAllocated 인 변수 대신 PointPool을 함수로 만들 것이라고 생각한다. TotalPointsAllocated는 numJobSkill1의 값이지만 쉽게 여러 번의 상승의 합계가 될 수있다. .

private void numJobSkill1_ValueChanged(object sender, EventArgs e) 
{ 
    PLAYERPOINTS = PointPool(); 
    lblPOINTPOOL.Text = PLAYERPOINTS.ToString(); 

} 

private Int32 TotalPointsAvailable; 

private Int32 TotalPointsAllocated() 
{ 
    //Value is a decimal 
    return (Int32)numJobSkill1.Value; 
} 

private Int32 PointPool() 
{ 
    return TotalPointsAvailable-TotalPointsAllocated(); 
} 
관련 문제