2014-02-28 3 views
0

충돌을 계산하는 프로그램이 있습니다.점수가 작동하지 않습니다. int ++ 레이블이 증가하지 않습니다.

코드

int eatenAppleCount = 0; 

public MainPage() 
{ 
score.Content = "Score" + " " + Convert.ToString(eatenAppleCount); 
} 

for (int indx = myapples.Count - 1; indx >= 0; indx--) 
      { 
       myapples[indx].Update(LayoutRoot); 
       bool collided = DetectCollision(myapples[indx], myPig); 
       if (collided) 
       { 
        eatenAppleCount ++; 
        RemoveApple(myapples[indx]); 
       } 
      } 

문제는 점수가 단지도 충돌에 0을 읽어이다. 누군가 나를 도울 수 있고 왜 증가하지 않는지 이해할 수 없습니다.

답변

2

메시지에 메시지를 표시하기 전에 eatenAppleCount을 계산하는 코드를 실행해야합니다.

그냥 기본값 인 eatenAppleCount을 사용하고있는 것으로 보입니다.

int eatenAppleCount = 0; 

public MainPage() 
{ 

    for (int indx = myapples.Count - 1; indx >= 0; indx--) 
    { 
     myapples[indx].Update(LayoutRoot); 
     bool collided = DetectCollision(myapples[indx], myPig); 
     if (collided) 
     { 
      eatenAppleCount ++; 
      RemoveApple(myapples[indx]); 
     } 
    } 

    score.Content = "Score" + " " + Convert.ToString(eatenAppleCount); 

} 
+0

놀랍지 만, 레이블을 잘못된 곳에 두십시오. 고맙습니다. – Beep

+0

@Beep, 오신 것을 환영합니다. – user2711965

0

당신은 참조로이 변수를 전달해야

int eatenAppleCount = 0; 

public MainPage() 
{ 
    CollisionDetect(ref eatenAppleCount); 
    score.Content = "Score" + " " + Convert.ToString(eatenAppleCount); 
} 

protected void CollisionDetect(ref eatenAppleCount) 
{ 
    for (int indx = myapples.Count - 1; indx >= 0; indx--) 
    { 
     myapples[indx].Update(LayoutRoot); 
     bool collided = DetectCollision(myapples[indx], myPig); 
     if (collided) 
     { 
      eatenAppleCount ++; 
      RemoveApple(myapples[indx]); 
     } 
    }   
} 
+2

레퍼런스 ?? 어디? Convert.ToString'에? – user2711965

+0

이 답변은 upvoted, ** 심각하게 ** ?? – user2711965

+0

@NewHire 주 메소드에서 일부 책임을 분할해야하기 때문에이 코드에서 일부 객체 지향을 사용하면 가능합니다. –

2

당신은 몇 가지 코드는 비트를 따라 열심히 snipets,하지만 난 그냥 증가 후이 줄을 다시 적용 할 필요가 있다고 생각 가지고 :

score.Content = "Score" + " " + Convert.ToString(eatenAppleCount); 
1

변수를 사용하여 콘텐츠로 사용할 문자열을 만들면 해당 변수가 콘텐츠에 연결되지 않습니다. 변수가 변경되면 이전 값에서 생성 된 내용에는 영향을 미치지 않습니다.

변수가 변경되면 내용을 업데이트해야합니다. 메소드의 생성자에서 해당 코드를 가져 와서 생성자에서 호출 할 수 있고 컨텐츠를 업데이트 할 때 사용할 수 있습니다.

관련 문제