2014-02-28 44 views
0

不遞增我有一個統計衝突的程序。分數不工作,詮釋++在標籤

代碼

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

@歡迎您光臨 – 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那麼,如果你在這段代碼中使用了一些OO,那麼你可能需要從主方法中分離出一些響應。 –

2

你有幾個代碼snipets這麼難走了一點,但我認爲你只需要重新申請增量後,這條線:

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

使用變量創建字符串以用作內容不會將該變量鏈接到內容。當變量發生變化時,它不會影響從先前值創建的內容。

您需要更新內容時,變量的變化。將構造函數中的代碼放入方法中,以便您可以從構造函數中調用它,以及何時更新內容。